我创建了一个新的mvc5标准项目。 我编辑了Startup.Auth.cs添加:
app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
{
ClientId = "myClientCode.apps.googleusercontent.com",
ClientSecret = "myClientSecret"
});
和web.config添加:
<location path="signin-google">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
我在google开发者控制台上设置了自动化的javascript来源为http://localhost:58053,并将授权的重定向URI设置为http://localhost:58053/signin-google
并启用以下google API
但是当我选择我的谷歌帐户时,在回调中
public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
的值
HttpContext.GetOwinContext().Authentication.GetExternalLoginInfoAsync();
为空
accounts.google.com生成的回调类似于:
http://localhost:58053/signin-google?state=K0Q6LHytGsRTpArK9TruwwzurLNbS4JeK30LEYhMmuaH9vmh3zQslFUA0dqByxftJlCBd6NhxyK12Co-2rKjBX711-WTfUNXKajPSKmpc7PiwwqBFwrnhMvUFh6f0b9iHTO4DU0EwBBBiYEDPkpvGsc--oTjTzzqf2qcpNLjScj9Hg6Obxm8tbHBcbO5CJcDxQtMWf8bOJ6bjVihqJwJ270Ps5SGfB9IRdxqJbVlIrM&code=4/tnXrYTNPuoTdZZmT29fWCWoE63_1HEa9g0lCrOi_vo8&authuser=1&session_state=3a5578d289d23d09dac97e705ebc613f4599f92b..d2d9&prompt=none
似乎没问题
关于我可以使用owin检索帐户数据的任何想法吗?