外部登录的承载令牌

时间:2014-02-21 05:13:54

标签: c# .net asp.net-mvc owin

如何在MVC5中通过外部登录提供商注册的用户获取Bearer令牌?

对于拥有本地帐户的用户,我们可以将带有用户名/密码/ grant_type的POST发送到/ token,并通过将令牌作为标头附加来接收令牌并对受保护的端点进行授权调用。

使用外部登录时,用户没有密码,我无法看到我们如何获得持票人令牌,任何建议都非常感激。

1 个答案:

答案 0 :(得分:2)

您想要google / 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);