Javascript 关注Facebook在网站中的整合。访问令牌

Javascript 关注Facebook在网站中的整合。访问令牌,javascript,node.js,facebook,login,passport.js,Javascript,Node.js,Facebook,Login,Passport.js,首先我用快递和护照。我想知道我是否使用这种方法,为什么不需要包含开发人员网站上阅读的javascript“SDK”。我有点困惑为什么passport不讨论SDK。我猜是因为SDK是用于客户端的,有另一种方法可以用Oauth做同样的事情,这就是facebook使用的passport。我想知道更多的细节 还有关于访问令牌 在passport中,我会这样做: 函数(accessToken、refreshtToken、profile、done){ … newUser.facebook.token=acc

首先我用快递和护照。我想知道我是否使用这种方法,为什么不需要包含开发人员网站上阅读的javascript“SDK”。我有点困惑为什么passport不讨论SDK。我猜是因为SDK是用于客户端的,有另一种方法可以用Oauth做同样的事情,这就是facebook使用的
passport。我想知道更多的细节

还有关于访问令牌

在passport中,我会这样做:

函数(accessToken、refreshtToken、profile、done){

newUser.facebook.token=accessToken;

这会得到这样一个“ACCESTOKEN”=EAAYRF9IXTA0BAPKSLXYMZA3Y2QWKDILAB84XXCJQH2QXEGZAAP8KDZBQWZAPZAD5ZCQYD4E6YKZAYTPGUJYQ88FRZC2HCRCGFZLBYIMXRUPSNXW470SJ7UNKIZCKEDOEJISGVTJKQEN8RNR2NCTEVFUM

我想知道这是否对每个用户都不同?

说有4种不同类型的“访问令牌”,上面哪一种?你怎么知道

另外,我想我在SDK指南中读到它会在cookies中设置accessToken,但我没有看到它 这是我执行
console.log(请求会话)

  • 为什么我不需要带PassportJS的Facebook Javascript SDK
  • Facebook的客户端SDK允许您获取身份验证(
    FB.api('/me')
    )和会话数据(
    FB.getLoginState
    )直接从Facebook进行验证,并将其设置在客户端的cookies中。使用Passport时,Passport.js会在您调用
    Passport时处理身份验证调用。在路由和会话数据中自动进行身份验证
    ,但都是从服务器端进行的,并且您的代码较少

    此外,Facebook只为网络登录提供短期访问令牌,但为服务器请求提供长期访问令牌

  • 每个用户的访问令牌是否不同
  • 它是独一无二的吗?是的。我还没有看到它明确的表述,但Facebook说:

    关于访问令牌,需要了解的一个重要方面是它们是可移植的。一旦你有了访问令牌,你就可以使用它从移动客户端、web浏览器或从你的服务器呼叫Facebook的服务器。如果在客户端获得令牌,你可以将该令牌发送到服务器,并在服务器对服务器呼叫中使用它。如果token是通过服务器调用获得的,您还可以将该令牌发送到客户端,然后从客户端进行调用

    我想你实际上可能会问的是,它是持久的吗?它们将过期并重新生成

    短期代币通常有一个或两个小时的生命周期,而长期代币通常有60天的生命周期。您不应该指望这些生命周期保持不变-生命周期可能会在没有警告的情况下更改或提前到期

  • 它是哪种类型的访问令牌?您如何知道
  • Passport处理用户登录和用户身份验证,并返回用户配置文件信息,而不是与其他3种令牌类型相关的任何信息

    用户令牌是最常用的令牌类型。每当应用程序调用API以代表特定用户读取、修改或写入其Facebook数据时,都需要这种访问令牌。用户访问令牌通常通过登录对话框获得,并要求用户允许您的应用程序获取

  • SDK说accessToken是在cookie中设置的
  • Passport不会在会话中显式存储accessToken,它通常在调用Passport.session()
    时为用户存储唯一标识符,例如
    user.\u id
    ,以便在调用
    Passport.deserializeUser
    时可以找到用户对象。您可以在“”中阅读更多信息

      cookie:
       { path: '/',
         _expires: null,
         originalMaxAge: null,
         httpOnly: true },
      passport: { user: '5760703f8fd744e020920980' } }