Android 对于一个拥有自己用户数据库的应用程序,使用Facebook登录如何工作?

Android 对于一个拥有自己用户数据库的应用程序,使用Facebook登录如何工作?,android,database,facebook-login,Android,Database,Facebook Login,我有一个关于使用Facebook登录功能的问题,有些应用程序有这个功能。以下是我的设想: 我目前有一个Android社交网络应用程序,它有自己的用户数据库和登录系统,用户有自己的用户名、个人简历等,我想包括Facebook登录的选项。目前,当用户希望注册使用该应用程序时,他们必须输入一个新的唯一用户名/密码/电子邮件,然后该用户名将用于从该应用程序向数据库发出的进一步请求,这是必需的。所以基本上我有几个问题: 我知道我可以为用户获取FB电子邮件,并在注册过程中使用它,但用户名/密码组合如何?我是

我有一个关于使用Facebook登录功能的问题,有些应用程序有这个功能。以下是我的设想:

我目前有一个Android社交网络应用程序,它有自己的用户数据库和登录系统,用户有自己的用户名、个人简历等,我想包括Facebook登录的选项。目前,当用户希望注册使用该应用程序时,他们必须输入一个新的唯一用户名/密码/电子邮件,然后该用户名将用于从该应用程序向数据库发出的进一步请求,这是必需的。所以基本上我有几个问题:

我知道我可以为用户获取FB电子邮件,并在注册过程中使用它,但用户名/密码组合如何?我是否应该单独请求它们

假设与FB的注册已完成,当用户使用facebook登录时,我如何知道用户名?我猜我可以使用电子邮件地址来验证这一点,对吗

所以我想我的主要问题是如何在注册/登录facebook时获得用户名/密码组合。非常感谢您的帮助/建议:谢谢


我知道这个问题以前可能被问过一百万次,但我找不到一个很好的解释/解决方法,因为我有一个用户名,而不是一个电子邮件地址作为用户标识符,我想这会让事情变得有点复杂,将是您正在谈论的密码。只是Facebook会存储它,所以你必须允许Facebook用户在你的数据库中没有密码

关于用户名的问题,回答起来比较复杂,我想应该是你来回答。但我会使用他/她的Facebook名字,正如我在许多使用Facebook登录的应用程序上看到的那样

因此,作为总结:

该电子邮件将是与Facebook帐户相关的电子邮件 用户名将是与Facebook帐户相关的名称 密码将是与Facebook帐户相关的密码
所以,您的数据库现在有一个问题,因为您需要一个唯一的用户名、密码和电子邮件。现在,你可能有重复的,因为有可能一个用户使用他的电子邮件和他的Facebook帐户使用同一封电子邮件。因此,我将使用两个表,FacebookUsers和Users,或者是一个带有新字段的唯一表,这将区分Facebook用户和普通用户。

Hi Carlos,谢谢你的回答:我认为这很有意义-我想我可以从他们的Facebook名称生成一个唯一的用户名,并在我的数据库中使用。至于电子邮件和密码-它们不必是唯一的,但需要在注册时出现。我在想,我可以简单地检查用户是否在我的服务器上使用FB登录,如果是,我就不能在我的数据库中添加密码。通过这种方式,我以后可以禁止他们编辑密码,因为密码将由facebook存储。但这是否意味着,如果用户注册facebook,然后注销,然后希望在没有FB的情况下登录,他们将不得不创建一个新帐户,因为FB帐户将没有相关的密码?很简单,只要始终给你机会登录Facebook。这将是我的建议。这没什么大不了的,因为你已经实现了Facebook登录,你只需要把它放在你认为需要登录的任何地方。当使用fb登录时,还有另一个相关问题,我们是否也应该在数据库中存储fb用户数据?我们不需要更新这些数据以便它们是最新的吗?我们应该多久更新一次?如果我记得很清楚的话,你可以在用户每次登录你的应用程序时更新。或者你可以每天、每周、每月设置一个“刷新”周期。。。。