2017-02-09 8 views
1

Stormpath IDサイト認可を使用してASP.NETアプリケーションを作成しようとしています。私は要求と応答のアクションを作成し、アカウントを正常に取得しました。Stormpath IDの処理方法サイトJWTの応答

しかし次に何?ユーザーに認証されていることをアプリケーションに伝えるにはどうすればよいですか?

public async Task<RedirectResult> Callback(string jwtResponse) 
{ 
    var client = Request.GetStormpathClient(); 
    var app = await client.GetApplicationAsync(appUrl); 
    var requestDescriptor = HttpRequests.NewRequestDescriptor() 
    .WithMethod("GET") 
    .WithUri("http://localhost:50084/Auth/Callback?jwtResponse=" + jwtResponse) 
    .Build(); 
    var idSiteListener = app.NewIdSiteAsyncCallbackHandler(requestDescriptor); 
    var accountResult = await idSiteListener.GetAccountResultAsync(); 
    var account = accountResult.GetAccountAsync().Result; //Account 
    //What I must do here to tell application that user is authenticated 
    return Redirect("/"); 
} 

答えて

0

代わりにIDサイト応答からアカウントを取得する、あなたはStormpathアクセストークンのためのJWTを交換することができます:

public async Task<RedirectResult> Callback(string jwtResponse) 
{ 
    var client = Request.GetStormpathClient(); 
    var app = await client.GetApplicationAsync(appUrl); 

    var exchangeRequest = new StormpathTokenGrantRequest 
    { 
     Token = jwtResponse 
    }); 

    var grantResponse = await application.ExecuteOauthRequestAsync(exchangeRequest); 

    // Return grantResponse.AccessTokenString in a secure HTTPOnly cookie, or as a JSON response 
} 

をおStormpath ASP.NET pluginを使用する場合は、enable ID Site、これが処理されますすることができますあなたのために自動的に。

免責事項:私はパッケージの著者です。

関連する問題