从Rick Anderson的精彩教程MVC 5 App with Facebook, Twitter, LinkedIn and Google OAuth2 Sign-on开始,特别是使用Google身份验证......
我扩展了Google身份验证的范围以包含DriveAPI。那部分一切正常,Fiddler显示googleapi access_token回来了。
我现在想要将google api令牌提供给我的javascript代码,以便我可以直接使用我的访问令牌调用Google驱动器API。
我可以从GoogleoAuth2AuthenticationProvider获取令牌
GoogleOAuth2AuthenticationOptions googleOptions = new GoogleOAuth2AuthenticationOptions() {
ClientId = ConfigurationManager.AppSettings["ClientId"],
ClientSecret = ConfigurationManager.AppSettings["ClientSecret"],
SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie,
Provider = new GoogleOAuth2AuthenticationProvider() {
OnAuthenticated = async context => {
context.Identity.AddClaim(new Claim(GoogleApiAccessTokenClaimType, context.AccessToken));
}
},
};
显然我需要把它存放在某个地方。我认为声明会自动保留在.AspNetApplicationCookie中,即使再次阅读此Cookie,我也无法轻松找到我已添加的任何声明。
这让我觉得我应该存储它AspNetUser表。但是,如果它在读取和解密后可以从cookie中获得,那似乎是多余的。
现在说我有令牌,我该怎么把它传达给我的javascript。我只是把它与一个块中的页面一起发送下来。 Dominick Baier说没关系。但我仍然想知道是否应该考虑另一种方法。
所以我总结的问题是......
感谢您的关注。
答案 0 :(得分:0)
这两个问题和讨论涵盖了大部分细节。
真有帮助。特别是符号设置。 (比Reflector生成的pdbs更容易使用)
questions/24894789/how-to-renew-the-access-token-using-the-refresh-token
在球场有点帮助。
questions/20637674/owin-security-how-to-implement-oauth2-refresh-tokens