确定用户是使用Facebook登录还是登录网站?

时间:2011-11-05 12:35:29

标签: php facebook facebook-graph-api

在网站上,将有两种登录方式 - 登录facebook或网站标准登录。

确定用户登录Facebook或网站登录的正确方法是什么?

我想在login_type表中添加一个名为users字段的字段。

值将是“facebook”或“standard”

如果用户通过Facebook登录,则将login_type的值存储在会话中,如$_SESSION['login_type'] = "facebook";

但是,如果用户想要注销,我们需要确保执行facebook注销功能。

这样的东西?

logout.php

if ($_SESSION['login_type'] == "facebook") { 
  $facebook->getLogoutUrl()
  //execute the url to CURL?
  header("LOCATION: index.php");
} 

1 个答案:

答案 0 :(得分:2)

  1. 将Facebook用户ID的字段添加到您的用户表(例如fb_id)
  2. 当用户通过Facebook登录时,您执行的操作完全与您在"正常"登录 - 但不是检查用户名/密码,而是检查Facebook ID /有效访问令牌
  3. 在此之后,您可以通过他的会话对用户进行身份验证。你不必再关心Facebook登录了。
  4. 在注销时终止您自己的会话等,然后您可能会重定向到Facebook注销网址,Facebook将终止其会话内容。你无法真正卷曲,因为你不会获得facebook.com的cookies。 ;)这样做也会在Facebook上记录用户,这对他来说非常烦人。
  5. P.S。:要明确4:如果你的应用程序在Facebook外运行,你必须在用户退出你的应用程序/网站时将用户从Facebook注销。见I.6。在https://developers.facebook.com/policy/#policies