2014-02-21 51 views
1

我怎樣才能承載令牌已通過MVC5外部登錄提供註冊用戶?承載令牌外部登錄

爲用戶提供本地帳戶,我們可以使用用戶名/密碼/ grant_type發個帖子/令牌和接收令牌,並通過附加標記爲一報頭做出保護端點授權的呼叫。

使用外部登錄有用戶沒有密碼,我看不出我們怎麼能得到的承載標記,有什麼建議大加讚賞。

回答

2

您希望谷歌/ Facebook的的/ etc訪問令牌?它應該在用於katana身份驗證中間件的Provider的OnAuthenticated事件/回調的AccessToken屬性中可用。

var fb = new FacebookAuthenticationOptions 
{ 
    AppId = "...", 
    AppSecret = "...", 
    SignInAsAuthenticationType = "ExternalCookie", 
    Provider = new FacebookAuthenticationProvider 
    { 
     OnAuthenticated = async ctx => 
      { 
       var access_token = ctx.AccessToken; 
       ctx.Identity.AddClaim(new Claim("access_token", access_token)); 
      } 
    } 
}; 
app.UseFacebookAuthentication(fb); 
+0

此代碼不爲我'ctx.Identity.AddClaim'工作,所以我使用'UserManager'手動添加'Claim',不好:( – Jaider

+0

什麼是「不工作」是什麼意思?例外?還是什麼? –

+0

它不會拋出異常。它只是沒有在數據庫中插入一個說法。我納悶,爲什麼呢?我看到了建設現代Web應用程序迅速啓動相同的代碼(第3章) http://www.microsoftvirtualacademy.com/training-courses/building-modern-web-apps-jump-start – Jaider