我有一个没有身份(自定义身份验证)的 MVC 项目。但后来我想对其实现 Google 和 Facebook 身份验证。
我为此创建了一个项目,以了解微软如何在 MVC 身份验证中做到这一点。我能够实现其中的一部分。现在我有调用谷歌身份验证页面的按钮,当我选择我的电子邮件登录时出现错误 - Error: redirect_uri_mismatch - 但我强制 URL 与我的 URL 匹配,这有效。
Google 能够在帐户 Controller 中调用我的操作,但是在查看我复制的 MVC 基本代码时,我无法检索有关用户的信息。
这是我在 loginInfo 中返回 null 的方法
public async Task<ActionResult> LoginWithGoogle(string returnUrl)
{
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
这是 AuthenticationManager
private IAuthenticationManager AuthenticationManager
{
get
{
return HttpContext.GetOwinContext().Authentication;
}
}
如何从 google 身份验证中获取信息?我可以通过 javascript 执行此操作,但我想仅使用 C# 执行此操作。
提前致谢。
最佳答案
我最近创建了自定义谷歌登录项目。我正在使用 Claims 来存储用户详细信息,但您可以使用您的自定义逻辑。
请在 GitHub 上找到它。有详细步骤。
https://github.com/kishancool11/GoogleLoginMVC
您可以使用 LoginWithGoogle 代替 GoogleLoginCallback。
关于c# - 在现有的mvc中实现google登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862357/