Da der implizite Fluss kein Aktualisierungstoken sendet (wie in section 9 von RFC6746 erläutert), ist die Verwendung von Aktualisierungstoken nicht möglich. Aber als Workaround kann man client credential grant verwenden, um ein Zugriffs-Token zu erhalten.
Eine praktikable Lösung besteht darin, zuerst dem impliziten Fluss zu folgen und den Client zu authentifizieren. Dann Client-Authentifizierung gewähren kann verwendet werden, um die erforderlichen API-Aufrufe zu tun.
Musterbestellung (von RFC6749)
POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
rant_type=client_credentials
Probe resposne (von RFC6749)
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"example_parameter":"example_value"
}
PS - Wenn Sie mit Autorisierungscode Fluss, können Sie refresh_token
, um ein neues Zugriffstoken zu erhalten. Wie die Anfrage erstellt werden soll, ist erhältlich unter OAuth2 documentation. Beachten Sie, dass Ihre Autorisierungsantwort zu diesem Zweck ein `refresh_token 'enthalten sollte.
Ein Aktualisierungstoken sollte so geschützt sein, wie ein Berechtigungsnachweis für einen Benutzer. Mehr aus keycloak Dokumentation von here
Musterbestellung und eine Antwort (von RFC6749)
Anfrage
POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA
Antwort
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
{
"access_token": "TlBN45jURg",
"token_type": "Bearer",
"refresh_token": "9yNOxJtZa5",
"expires_in": 3600
}
Haben Sie verwenden müssen gelesen werden das Webview und der implizite Flow oder ist es dein c hoice? –
Ich versuche auf Couchbase Sync Gateway zuzugreifen, und basierend auf dieser Diskussion hatte ich in ihren Foren https: // Foren.couchbase.com/t/cbl-database-name/13233/18, scheint es, dass ich Implicit flow verwenden muss. Mein Identitätsanbieter (keycloak) empfiehlt die Verwendung seiner Web-Login/Registrierungsseiten - also Web-Ansicht. – tura08