2017-07-26 2 views
0

Ich habe IdentityServer und ein separates WebApi-Projekt, das den Ressourceneignerfluss verwendet.So fordern Sie ein Aktualisierungstoken mit identityserver4 an

Wenn ich ein Token wie unten anfordern, wird das Token ausgegeben und kann für den Zugriff auf das WebApi verwendet werden. Ich nehme an, dass IdentityServer korrekt eingerichtet ist und das WebApi-Projekt ebenfalls korrekt eingerichtet ist.

username=user1 
password=user1password 
grant_type=password 
client_id=myClientId 
client_secret=myClientSecret 
scope=api1 

Jetzt, wenn ich den Grant-Typ zu aktualisieren und den Bereich zu offline_access ändern, erhalte ich ein Aktualisierungstoken. Ich verwende dann das Aktualisierungstoken, um ein Zugriffstoken zu erhalten, aber wenn ich das Zugriffstoken verwende, um das WebApi anzufordern, wird es zurückgewiesen.

Mit einem Fehler

the audience is invalid 

Ich vermute, es ist, weil ich für einen offline_access Umfang statt API1 Umfang bin zu fragen, die das WebAPI Projekt erwartet. Wie bekomme ich ein Refresh-Token, das mit dem Scope api1 verwendet werden kann?

Antwort

0
var model =  { 
        client_id: "myClientId", 
        client_secret: "myClientSecret", 
        scope: "api1 offline_access", 
        token_type: "Bearer", //Optional 
        grant_type: "refresh_token", 
        refresh_token: "your refresh token" 
       }; 


//this is most important step when to use refresh token 

var base64 = btoa(model.client_id + ":" + model.client_secret); 

//and your request here 

this.$http({ 
       method: "POST", 
       url: "/connect/token", 
       headers: { 
        'content-type': "application/x-www-form-urlencoded", 
        'Authorization': "Basic " + base64 
       }, 
       data: jQuery.param(model) 
      }) 
       .then(
       response => { 


        //success 


       }, 
       response => { 

        //logout 
       }); 
Verwandte Themen