在移动和网络数据存储上注册/登录Facebook和谷歌

rak*_*los 9 oauth single-sign-on asp.net-web-api asp.net-identity

我希望用户能够通过移动应用程序(android和ios)和/或网站(使用asp.net MVC构建)登录facebook/google ...

我的数据库应该存储什么才能使身份验证在移动应用和网站上运行?userId,google/facebook令牌?

我不确定如何保存用户信息.我应该把它与OWIN结合起来吗?我不太了解asp.net身份,但已经看到它与第三方提供商相当直接....问题是,如果我第一次从移动应用程序登录,我应该以编程方式将新用户添加到数据库中吗?

到目前为止,我认为这似乎是最好的链接:http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin /

但我希望有一个更简单的方法.

我得到google/fb令牌并将它们发送到服务器以获取用户的ID ...

我需要做什么,以便如果google/fb用户通过网络登录,他们将被识别为同一个用户.

似乎MS已经使ASP.Net Identity能够如此容易地为Web设置社交登录,但忽略了如何使用移动设备来使用sql server db来存储用户/会员详细信息......

只是试图找出管理移动和网络用户的最佳方式

Ani*_*war 2

此链接描述了您正在寻找的所有内容http://www.asp.net/mvc/overview/security/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-登录

为了检查用户是否已存在于数据库中,您必须在数据库中存储的内容可以从 Facebook 或 Google 验证用户凭据后收到的响应中获取,Facebook 和 Google 必须提供详细信息用户回复。例如电子邮件 ID、出生日期等,您可以将这些详细信息保存在数据库中,并在每次登录时检查用户是否已存在并进行相应注册。

响应的详细信息在另一篇文章WebApi ASP.NET Identity Facebook 登录中提到

  public class FacebookLoginModel
{
    public string token { get; set; }
    public string username { get; set; }
    public string userid { get; set; }
}

public class FacebookUserViewModel
{
    public string id { get; set; }
    public string first_name { get; set; }
    public string last_name { get; set; }
    public string username { get; set; }
    public string email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)