2

刚刚试用了新的 ASP.NET Identity 登录系统并将 Google 添加为外部登录提供程序。
登录工作正常,但我找不到用于进一步 API 调用的身份验证令牌,例如

json = new WebClient().DownloadString(" https://www.googleapis.com/plus/v1/people/me?access_token= " + accessToken);

登录后我得到的唯一信息是姓氏、名字、电子邮件。有人可以告诉我令牌隐藏在结果中的位置吗?

或者我是否需要在我的 Startup.Auth.cs 中设置一些选项,其中设置了“app.UseGoogleAuthentication()”?

4

2 回答 2

4

据我所知,ASP.NET 身份中的 Google 身份验证是基于 OpenID 的,因此您将无法调用需要 OAuth 访问令牌的 Google+ API。为此,您(或其他人)需要为基于 OAuth 的 ASP.NET Identity 开发 Google+ 身份验证提供程序。

对于基于 OAuth 的提供商,例如 Twitter 和 Facebook,您可以使用我在http://www.beabigrockstar.com/get-the-twitter-profile-image-using-the-asp-net-identity的博客文章中描述的机制/检索和存储访问令牌,然后在后续调用中使用它。

更新:我为 Google+ 开发了一个 OAuth 提供程序,其中包含如何存储令牌并使用它进行 OAuth 调用的示例。有关更多详细信息,请参阅http://www.beabigrockstar.com/google-oauth-sign-asp-net-identity/上的博客文章

于 2013-11-05T17:16:32.467 回答
0

关于如何存储 facebook 访问令牌,您可能可以执行与此问题类似的操作:How to store/retrieve a facebook access token

于 2013-10-15T21:43:46.153 回答