Php 注销后保留用户名的Facebook登录

Php 注销后保留用户名的Facebook登录,php,facebook-login,Php,Facebook Login,只是想了解facebook登录背后的理念 如果我登录到Facebook,我的网站会自动接收并登录 若我从facebook注销,那个么我并没有通过facebook的身份验证,这个网站仍然有效 如果我通过我的网站或facebook登录,我已通过身份验证,我可以使用facebook或我的网站作为身份验证用户 如果我退出Facebook,我的应用程序仍然经过身份验证,但不是Facebook 如果我注销我的应用程序并终止所有会话并手动删除cookie,我可以成功注销 我在两个网站上都注销后遇到的问题是$f

只是想了解facebook登录背后的理念

  • 如果我登录到Facebook,我的网站会自动接收并登录
  • 若我从facebook注销,那个么我并没有通过facebook的身份验证,这个网站仍然有效
  • 如果我通过我的网站或facebook登录,我已通过身份验证,我可以使用facebook或我的网站作为身份验证用户
  • 如果我退出Facebook,我的应用程序仍然经过身份验证,但不是Facebook
  • 如果我注销我的应用程序并终止所有会话并手动删除cookie,我可以成功注销
  • 我在两个网站上都注销后遇到的问题是
    $facebook->getUser()
    getAccessToken()仍保留我使用的id和令牌。这些是从哪里来的


    我正在使用PHPSDK

    当您使用Facebook登录应用程序时,您的应用程序会请求Facebook对您进行身份验证。当身份验证成功时,Facebook会告诉您的应用程序您已通过身份验证。然后,应用程序维护自己的会话

    您在Facebook帐户或应用程序中所做的操作可能不会相互反映更改。例如,当您注销Facebook帐户时,您的应用程序不会知道,因为就您的应用程序而言,您已经通过了身份验证。同时,当你注销Facebook时,Facebook没有告诉你的应用程序你已经注销

    应用程序和Facebook(或其他OAuth提供商)维护各自独立的会话

    关于您的问题:

  • 是的,您的网站会将访问者重定向到Facebook中的链接,该链接会自动告诉您的客户您已登录。您不再看到提示,因为您在首次尝试使用Facebook帐户访问应用程序时已授予应用程序权限

  • 由于有单独的会议,这将起作用。当您注销Facebook时,您仍然登录到该应用程序。除非应用程序尝试通过Facebook再次验证您的身份,否则不会,在这种情况下,身份验证将失败

  • 这是正确的,但是如果您没有登录到Facebook,您就无法登录到应用程序,除非您有另一种方式在没有Facebook的情况下对您的应用程序进行身份验证(如使用链接帐户的替代登录)。但是,在这种情况下,您仍然需要使用他们的登录表单登录到Facebook才能登录。您不能通过应用程序登录到Facebook

  • 这是正确的。如果您注销Facebook,则表示您已注销Facebook。由于单独的会话,您也需要注销应用程序

  • 也对

  • 在您的案例中可能发生的情况是:

  • 您已注销应用程序
  • 您将被重定向到您的主页
  • 您的主页试图验证您的身份,因为您未登录
  • 你会被重定向到Facebook
  • Facebook确认您的身份并重定向到应用程序
  • 应用程序再次验证您的身份
  • 为了解决这个问题,您的主页不应该自动验证。应该有一个按钮,用户必须点击-类似于“登录Facebook”,然后再启动Facebook认证

    您也不能将用户“强制注销”出Facebook。因此,在使用您的应用程序后,您的用户必须注销您的应用程序和Facebook。如果您的应用程序使用会话cookie,则在浏览器关闭时用户将注销