2014-02-21 53 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