使用 Facebook 或 google+ 登录

login with facebook or google+

只是好奇,

如果我想使用 API 进行登录(即 Google+ 的 Facebook)

  1. 我在数据库中存储了什么用户的唯一密钥?我的应用程序是否与它们(Facebook 或 google+)具有相同的用户唯一密钥,或者它们在登录我的应用程序时为我的用户生成一个新的唯一密钥?它是什么类型的数据?

  2. 我是将用户信息复制到我的数据库中,还是继续从 Facebook 或 Google+ 访问用户信息?比如我是否必须为用户的姓名、性别、生日等创建 table 并在用户登录我的应用程序或直接从 Facebook 访问它时注册用户信息,或者每次我的应用程序需要它时 Google+?

  3. 用户使用 API 登录真的安全吗?有人可以使用 API 获取用户的电子邮件和密码,或者在用户的 Facebook 中创建 post 或 Google+ 该用户不想 post,或者劫持用户的帐户吗?

这可能是常见情况,但我没有使用经验API,所以我对此一无所知。

What user's unique key do I stored in my database? Do my apps have same user's unique key as them(Facebook or google+), or they generate a new unique key for my user when sign in my apps? And what type of data is it?

当您使用 Google 或 Facbook 登录 时,您实际上只需要存储他们 return 给您的信息。

LoginProvider   ProviderKey         ProviderDisplayName      UserId
_____________________________________________________________________
Facebook        1969950809700159        Facebook             21248583
Google          117200475532672775346   Google               21248582

用户 ID 是我的用户 table 的用户 ID。我在哪里存储我的系统需要的用户信息 ProviderKey 是登录提供商系统上的用户 ID。

Do I duplicate user's information into my database or keep accessing user's information from Facebook or Google+? Like do I have to create table for user's name, gender, birthday,etc and register user's information once user login to my apps or straight access it from Facebook or Google+ every time my apps needs it?

当用户创建或将他们的帐户链接到您的系统时,您可以复制其中的一些,但我不会在不通知用户您这样做的情况下自动更新它。有些用户没有意识到您可以通过链接到社交媒体帐户访问多少信息。

Is it really safe for user to using login with API? Can someone using API to get user's email and password, or make post in user's Facebook or Google+ that user don't want to post, or hijack user's account?

我认为您混淆了身份验证。使用 Oauth2,您请求用户授予您查看数据的权限,但 api 这是授权。如果您使用 Google+ 或 facebook 登录,则您使用的是身份服务器并以用户身份登录。如果您希望他们使用他们的社交媒体帐户登录您的系统,您应该使用登录。通过唱歌,你就是那个用户。不,我不认为他们可以使用登录来劫持。