在Visual Studio 2017RC中,我创建了具有单独用户帐户的ASP.NET Core MVC应用程序,并成功完成了https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/google-logins教程以附加Google身份验证。我现在通过我的Google帐户登录。如何在ASP.NET Core MVC OAuth 2.0中获取访问令牌的值
我所做的只是添加几行自动生成的代码(在Startup.cs的配置方法):
app.UseGoogleAuthentication(new GoogleOptions
{
ClientId = "xxxx.apps.googleusercontent.com",
ClientSecret = "xxxx",
Scope = { "email", "openid" }
});
我现在需要得到这是由谷歌发出的访问令牌的值(和存储在Cookie中)。然后,我将使用它来生成XOAuth2密钥以访问Google服务。例如,在HomeController的About方法(由标准向导自动生成)中,我想显示收件箱中未读邮件的数量。使用XOAuth2密钥,我可以登录我的Gmail并从此处继续。
我怎样才能得到这个令牌? - 我需要通过Google初始登录时将访问令牌存储在数据库中吗?如果是这样,任何线索如何可以在标准的向导生成的ASP.NET Core MVC应用程序中做到这一点? - 或者,我可以随时从cookies中读取访问令牌?如果是这样,怎么样?
最好我从cookies(无论如何)读取它并避免在数据库中重复此信息,但不确定此方法是否可行(即是否可以解密)。
我为ASP.NET MVC做了一次,但在ASP.NET Core MVC中发生了很大的变化,遗留代码已经无用了。
是什么类型在你的榜样信息? – conterio
我不记得确切,但我相信它是'Microsoft.AspNetCore.Identity.ExternalLoginInfo'。 – Alex
你从哪里得到信息? – Murray