我是第一次实施Facebook登录(针对网络),我对用户会话以及处理注销的最佳做法有一些疑问。现在,我正在使用JS SDK的组合(如果启用了js,则仅用于登录流程)和PHP SDK。
问题1:我应该在PHP会话中保存Facebook访问令牌还是使用SDK中内置的“cookies:true”功能。
问题2:如果通过Facebook注册的用户在几天后返回该网站,是否应该自动登录,或者必须通过Facebook按钮点击登录,那么只需登录即可?
问题3:如果登录用户的FB登出我的网站,我应该将它们从Facebook或我的网站注销吗?
问题4:如果一个FB登录用户登出Facebook,同时也在我的网站上(不同的标签页),我应该自动将它们从我的网站注销吗?
答案 0 :(得分:0)
1)您可以将访问令牌保存在数据库中(但要注意到期日期)或将其保存在会话中。 Cookie是最简单的方法来管理它并处理(2)。
2)根据您处理会话的方式和您使用的SDK,将自动记录使用情况(例如,JavaScript方法FB.getLoginStatus()
以检测应用程序是否已被初始化)。对于新用户,无论如何,您的应用都应该有“使用Facebook登录”按钮。
3)如果您使用SDK中的注销方法(例如JavaScript SDK中的FB.logout()),则用户将从您的站点和Facebook注销。这实际上取决于你想如何处理这个问题。如果您的网站删除了会话/ cookie,则可以将其注销。
4)无论何时在您的网站上执行操作,您都应该检查用户是否已登录。如果用户在您的网站上退出Facebook,最终,您的网站应该选择它(使用FB.getLoginStatus()
)并要求他们再次登录。
答案 1 :(得分:0)
3)至少在使用JS SDK时,Facebook将决定用户是否应该退出Facebook或仅退出您的网站/应用。从他们的文档中,可以看到一些案例的链接:
"方法FB.logout()将用户从您的站点中注销,在某些情况下 案例,Facebook。" - Facebook docs