2017-08-14 2 views
0

I ve created an OAuth2 authorization in my application, but still i don Ich verstehe, wie die Aktualisierung von Token funktioniert.OAuth2 refresh_token grant

Ich habe es geschafft, refresh_token mit Passwort grant_type zu generieren und zu speichern.

(in:

public async Task CreateAsync(AuthenticationTokenCreateContext context) 

)

Und in Folge der ersten/Tokenanforderung, die Antwort ist folgende:

{ 
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiasFzI1NiJ9.eyJyb2xlIjoibWVtYmVyIiwidW5pcXVlX25hbWUiOiIyIiwiZ2l2ZW5fbmFtZSI6IkpvaG4iLCJmYW1pbHlfbmFtZSI6IlNtaXRoIiwiRXhlcmNpc2UiOiJBbWF6b24gRXhlcmNpc2UiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjUxMDAvdG9rZW4iLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0OjUxMDAvdG9rZW4iLCJleHAiOjE1MDI3MDg1ODYsIm5iZiI6MTUwMjcwNDk4Nn0.H7GOcSiqp9H53ckx5_3anwEEqhXCk_UAlOcorM_2vgs", 
    "token_type": "bearer", 
    "expires_in": 3599, 
    "refresh_token": "bf183e7d-b120-475f-881b-91a32d344e58" 
} 

Aber dann, wenn ich einen anderen/Token POST erstellen :

[{"key":"grant_type","value":"refresh_token","description":""}, 
    {"key":"refresh_token","value":"00a4d77d-52a7-4b32-aa8c-6c7ad1d65696","description":""}] 

Ich habe keine Ahnung, wie ich mit diesem refresh_token umgehen soll, um ein neues Zugriffs-Token zu erstellen und zu senden. Es passieren viele Dinge automatisch, was mich noch mehr verwirrt.

Sollte dieses Management in sein:

public override async Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context) 

in CustomOAuthProvider?

wenn nein, welche Methode sollte eingehende Anfrage prüfen; und wie man damit umgeht?

Antwort

0

Ich missverstanden ValidateClientAuthentication Methode. Es ist nur für CLIENT (z. B. API, Website, WPF-Client), nicht für USER-Validierungszwecke.

Ich habe es geschafft, folgendes zu tun: Validierungslogik

Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) 

richtig ist Eine andere Sache ist, dass ich `ve benutzerdefinierte Header-Parameter anstelle von Standard (magisch binded ich denke :))‚Passwort ‘,‚username‘und‚Spielraum‘

Jetzt habe ich Zugang zu jedem von ihnen in OAuthGrantResourceOwnerCredentialsContext Objekt ohne seltsame Hacks mit context.OwinContext.Set("", ob)...

TL zu machen; DR ValidateClientAuthentication für Validierungsclient (API, Websites usw.)

GrantResourceOwnerCredentials, um zu überprüfen, ob die angegebenen Anmeldeinformationen korrekt sind

Verwandte Themen