Hallo,
ich versuche meinen refresh token zu bekommen doch leider sieht meine Antwort nicht so aus :
(https://documentation.viessmann.com/static/authentication)
HTTP/1.1 200 OK Content-Type: application/json { "access_token": "eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU...", "refresh_token": "083ed7fe41a619242df5978190fd11b5", "token_type": "Bearer", "expires_in": 3600 }
sondern es kommt sowas dabei raus:
<!DOCTYPE html>
<html>
<head>
<title>Viessmann Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="icon" href="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/images/favicon.png" type="image/png">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900"/>
<link rel="stylesheet" href="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/css/material.min.css"/>
<link rel="stylesheet" href="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/css/customerRegistration.css"/>
<script src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/js/material.min.js"></script>
<script src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/js/showpw.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://www.recaptcha.net/recaptcha/api.js" async defer></script>
<script>
function onSubmit() {
document.getElementById("AuthUidDialogCaptcha").submit();
}
</script>
</head>
<body>
<div class="b2b-main-background"> <div class="font-size-20px b2b-regestration-headline"> <div class="mdl-grid mdl-grid--no-spacing"> <div class="b2b-regestration-headline-item" style="margin-left:24px">Login</div>
</div> </div>
<div class="b2b-main-container"> <div class="b2b-sub-container"> <div class="mdl-grid mdl-grid--no-spacing"> <div class="mdl-layout-spacer"></div>
<img src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/images/viessmann-logo.png" alt="viessmann-logo" class="b2b-vi-image"/>
<div class="mdl-layout-spacer"></div>
</div> <form class="b2b-form-space" id="AuthUidDialogCaptcha" name="AuthUidDialogCaptcha" method="POST" target="_self" action="https://iam.viessmann.com/idp/v2/authorize?client_id=88438a5ab704a008f683dfe3d041bea7&redirect_u..." autocomplete="off" accept-charset="UTF-8">
<noscript>
<div class="mdl-grid mdl-grid--no-spacing">
<div class="mdl-layout-spacer"></div>
<div class="error-color normal-text font-size-26px opacity-87 b2b-form-space b2b-line-height"><p>Javascript in your browser is disabled. This page requires javascript to work properly.<br>Please enable javascript in order to use this page.</p></div>
<div class="mdl-layout-spacer"></div>
</div>
</noscript>
Der Curl comand ist wie in dem Beispiel, ich ersetze nur die my_oauth_cliend_id und die code_challenge mit meinen Werten.
curl -X POST "https://iam.viessmann.com/idp/v2/authorize?
client_id=my_oauth_client_id
&redirect_uri=http://localhost:4200/
&response_type=code
&code_challenge=2e21faa1-db2c-4d0b-a10f-575fd372bc8c-575fd372bc8c
&scope=IoT%20User%20offline_access"
Was mach ich falsch
Gelöst! Gehe zu Lösung.
@DanielAux um neben dem Access Token auch einen Refresh Token zu erhalten, musst du lediglich in Step 1 den Scope ändern zu IoT%20User%20offline_access. Die restlichen Schritte bleiben der gleich. Anschließend sollte sowohl ein Access Token als auch ein Refresh Token erzeugt werden.
Hallo @DanielAux,
Versuch bitte einmal, den Aufruf in einem Browserfenster aufzurufen, also sprich den Link im Befehl im Browser zu öffnen. Du müsstest anschließend ein Login Fenster erhalten, in dem dich mit deinem Viessmann Account (den du für ViCare verwendest) einloggen musst. Anschließend erhältst du einen Code, der sich im Link des sich öffnenden Fensters befindet. Diesen Code nutzt du dann für Step 2 der Authentifizierung, welchen du nicht mehr im Browser ausführen musst, sondern beispielsweise in Postman durchführen kannst.
Ich hoffe das hilft weiter.
Gruß,
Michael
Hallo @MichaelHanna ,
leider nicht.
Step 1 und 2 funktionieren, ich habe meinen "access_token"
Das Anfragen des "refresh_token" klappt nicht (Step Refreshing an access token)
curl -X POST "https://iam.viessmann.com/idp/v2/authorize?
client_id=my_oauth_client_id
&redirect_uri=http://localhost:4200/
&response_type=code
&code_challenge=2e21faa1-db2c-4d0b-a10f-575fd372bc8c-575fd372bc8c
&scope=IoT%20User%20offline_access"
@DanielAux um neben dem Access Token auch einen Refresh Token zu erhalten, musst du lediglich in Step 1 den Scope ändern zu IoT%20User%20offline_access. Die restlichen Schritte bleiben der gleich. Anschließend sollte sowohl ein Access Token als auch ein Refresh Token erzeugt werden.