2016-10-13 120 views
0

我正在使用Facebook登录作为我的PhoneGap应用程序的身份验证 - 一旦用户登录,他们的数据将从我的数据库中检索以显示信息。我没有将SDK用于任何其他目的。Facebook Javascript SDK自动登录和Tokens

我有Facebook自动登录工作正常 - 它检索authResponse和我的Facebook信息。由于访问令牌随着每次登录而改变,我可以使用什么来存储本地和我的数据库,以便对我的服务器上的用户进行身份验证以便将来登录?

这里是我想可以工作...

  1. 用户看到日志在屏幕上,并进入Facebook的凭证流
  2. Facebook的安全验证,并返回用户信息&访问令牌
  3. 的应用程序使用localStorage存储用户电子邮件和访问令牌
  4. 对于未来的自动登录,localStorage值用作电子邮件/密码

但是,我觉得这不可能是正确的答案。

+0

是的,localStorage不应该用于保存敏感信息,如密码和客户数据 –

+0

@MandeepSingh我同意 - 你有什么建议? – isometrixk

+0

访问令牌只有几个小时有效 – WizKid

回答

0

我想出了一个解决方案 - 我对将密码存储在数据库中以获取用户信息感到困惑。相反,这些都是正确的步骤:

  1. 使用Facebook SDK与临时访问令牌处理登录和检索authResponse
  2. 更新用户表在我的数据库和检索用户的信息
  3. 对于每一个岗位或GET用户希望执行的操作,我将匹配来自数据库的访问令牌的FB.getLoginStatus()结果(该检查将在服务器端完成)
  4. 如果令牌匹配,请执行请求。否则,强制用户再次登录。
+0

但令牌只存在几个小时,你再次击中新令牌 –

+0

正确 - 反复打开应用程序将创建新的令牌,并且应用程序工作正常,无需强制登录时间。 – isometrixk