存储facebook登录+正常登录的最佳方式是什么?
目前我有一个loginActivity
,其中有一个facebook login
按钮,一个normal login Email/Password Edittext fields
用于正常登录+ register
'按钮,用于正常用户注册
当有人点击facebook登录按钮时,
它将使用facebook api登录,
然后将username/fb_id/email
等提供的fb + password
(is actually the facebook email
)散列,使用PHP password_hash($password, PASSWORD_DEFAULT)
作为“registration
”,然后将“login
”使用email
没有注册Facebook帐户,使用Facebook电子邮件+自动生成密码自动注册
当某人以register button
注册为普通用户时,它几乎完全相同,但将用户提供username/password/email
存储到数据库然后使用email
这是使用FB登录和普通登录来存储用户的正确方法吗?
答案 0 :(得分:0)
我将尝试回答,对我来说,我将使用共享首选项,它作为用户的会话。由此(假设我使用phpMyAdmin)作为我的服务器,我将通过获取共享首选项中的值来获取数据/将数据传递给我的服务器。关于你的数据库,它是本地的吗? SQLite的? 。 有关fb API的注意事项。
如果每次登录时都自动生成密码,我们就无法存储密码。(这取决于您,但如果您坚持,请使用BIG INT)。为此,他们可以在您自己的应用程序中创建自己的密码。请参阅Facebook Doc Link。
如果用户具有唯一ID(fb id),我们可以存储该ID以及电子邮件添加等(您请求的数据)。 并使用php代码与sqli语句(当前用户记录FB_ID&& EMAIL)在Sql server中比较这两个。
如果您的应用需要其他信息,如姓名,姓氏和出生日期,您也可以获得该名称。并使用php代码与mysqli语句比较所有数据。但首先将后台共享pref中的数据首先传递给您的服务器。
Facebook Documentation - 请阅读此处了解更多信息。
将手动登录信息添加到Facebook登录创建的帐户
当有人使用Facebook登录在您的应用中创建帐户时会出现这种情况,但后来又希望使用唯一的凭据和密码登录该帐户。例如,Netflix有一个Web应用程序,它使用Facebook登录和常规登录系统,还有一个Xbox 360应用程序,人们只能使用常规登录系统。
如果您使用电子邮件地址作为标识每个帐户的唯一凭据,您的应用应验证与该人的Facebook帐户相关联的电子邮件地址(以及在Facebook登录期间获得的电子邮件地址)是否有效。您可以通过在应用中创建代码来向Facebook登录后获得的地址发送验证电子邮件(您可能需要将此步骤作为常规登录系统的一部分)。
一旦验证了电子邮件地址,您现在可以请求此人提供密码,向他们表明他们以后可以使用此密码与他们的电子邮件地址一起登录您的应用。提供后,您可以将其添加到当前存储帐户信息的数据库的同一部分。
如果您的应用的登录系统没有使用电子邮件地址作为标识并使用用户生成的内容(如用户名),那么您还应该请求此人同时提供此信息。密码。