2015-12-29 8 views
5

Ho un'applicazione scritta in AngularJS che contatta un'API Web per l'autenticazione tramite oauth 2. Tutto sta funzionando bene con quel pezzo principale, ma ho bisogno di passare parametri aggiuntivi per valutare l'accesso (clientID) e impostare una funzionalità di tipo ricordami (ricorda).Invio di parametri aggiuntivi al token nell'API Web con oauth2 e AngularJS

Dal punto di vista angolare, sarebbe simile a questa:

var data = "grant_type=password&username=" + form.username + "&password=" + form.password + "&clientID=" + clientID + "&remember=" + form.remember; 

    var deferred = $q.defer(); 

    $http.post(serviceBase + 'token', data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).success(function (response) { 

Ogni pensiero come il modo migliore per catturare quei valori una volta che ho l'elaborazione del token tramite la Startup.cs e SimpleAuthorizationServerProvider.cs? Grazie

risposta

8

Quando si utilizza GrantResourceOwnerCredentials, è possibile recuperare la richiesta OWIN da OAuthGrantResourceOwnerCredentialsContext ed estrarre il parametro personalizzato necessario chiamando ReadFormAsync().

Detto questo, l'aggiunta di parametri personalizzati (cioè non standard) è solitamente scoraggiata, specialmente se sono obbligatori. Tieni presente che non è necessario utilizzare un parametro personalizzato clientID, in quanto esiste già un equivalente standard: client_id.

+0

Che ha funzionato come un fascino. Grazie per l'aiuto. Ho trascurato il client_id, quindi è bene sapere. Quindi, se l'aggiunta di parametri non standard è scoraggiata, come consiglieresti di passare quel valore vero/falso attraverso per impostare la funzionalità di ricordami? –

+0

IMHO, una cosa "ricordami di me" non ha molto senso nel meraviglioso mondo dei token. Cosa fa esattamente? – Pinpoint

+0

Non sono un grande fan della funzione remember me, ma il mio cliente lo desidera. Fondamentalmente, il token è impostato per scadere dopo 24 ore per impostazione predefinita e ricorda che estendere il valore di scadenza a 30 giorni. –