Javascript 关注Facebook在网站中的整合。访问令牌
首先我用快递和护照。我想知道我是否使用这种方法,为什么不需要包含开发人员网站上阅读的javascript“SDK”。我有点困惑为什么passport不讨论SDK。我猜是因为SDK是用于客户端的,有另一种方法可以用Oauth做同样的事情,这就是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
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' } }