我在我的MVC5 Web App(SPA模板)中使用GoogleOAuth2AuthenticationOptions类进行身份验证。以下是代码
var g = new GoogleOAuth2AuthenticationOptions
{
ClientId = "clientid",
ClientSecret = "secret",
//CallbackPath="",
Provider = new GoogleOAuth2AuthenticationProvider
{
OnAuthenticated = async ctx =>
{
ctx.Identity.AddClaim(new Claim("urn:tokens:google:accesstoken", ctx.AccessToken));
}
}
};
// restrict the retrieved information to just signin information
g.Scope.Add("openid");
app.UseGoogleAuthentication(g);
我得到的令牌是这样的
ya29.LgAibra6cNLEKCEAAADLJxUOviZRgv9JSm-jrB-lNp16nomUijNrVAbcdDkI60Vg-A9yjFN4abcd_C8b4
我在后续调用MVC WebAPI时使用此标记,该安全使用OAuthBearerTokens。我通过我的MVC Web应用程序的WebAPI调用中的标头发送访问令牌
app.UseOAuthBearerTokens(OAuthOptions);
客户端上生成的javascript包含一个更大的令牌,可以与我的MVC WebAPI一起使用。有谁知道如何解决这个问题,加上为什么javaScript令牌不同?我怀疑这与SPA模板本身有关,但我不确定。