首先,我使用快递和护照。我想知道我是否采用这种方法为什么我不需要包含javascript" SDK"关于开发者网站的阅读。我有点困惑为什么护照不讨论SDK。我想因为SDK是针对客户端的,而且还有另一种方法可以使用Oauth做同样的事情,这就是numpy
使用的方式。我想了解更多细节。
关于访问令牌。
在护照上我做了这样的事情:
passport-facebook
function(accessToken, refreshToken, profile, done){
...
这会得到一个" acccesToken"像这样= EAAYrf9ixTA0BAPkSlXymZA3y2QwkDIlAB84XXCjQH2qxEgZAaP8kdZBqWZApZAd5ZCqyD4te6YkZAYTpMPGujYq88fRZC2HcrcgfzLBiFyIMXrRUpssNxW470SJ7muNkiZCKEDoejiSZBgvtJkQen8rnr2nctEvfzfUm
我想知道每个用户是否有所不同?
It说有4种不同类型的"访问令牌"哪一个是上面的?你怎么知道的?
另外,我认为我在SDK指南中读到它会在cookie中设置accessToken但我不会看到它
这是我newUser.facebook.token = accessToken;
console.log(req.session)
答案 0 :(得分:0)
Facebook的客户端SDK允许您直接从Facebook获取身份验证(FB.api('/me')
)和会话数据(FB.getLoginState
),并将其设置在客户端的Cookie中。使用Passport时,passport.js会在您自动调用路由和会话数据中的passport.authenticate
时处理身份验证调用,但所有这些都来自服务器端,并且代码较少。
此外,Facebook只会为网络登录提供短期访问令牌,但会为服务器请求提供长期访问权限。
这是独一无二的吗?是。我还没有明确表示,但Facebook表示:
了解访问令牌的一个重要方面是它们是可移植的。获得访问令牌后,您可以使用它来从移动客户端,Web浏览器或从服务器到Facebook的服务器进行呼叫。如果在客户端上获得令牌,您可以将该令牌下载到您的服务器并在服务器到服务器调用中使用它。如果通过服务器调用获得令牌,您也可以将该令牌发送到客户端,然后从客户端进行调用。
我认为您实际上可能会问的是是持久的还是the answer is no。它们将过期并重生。
短命代币通常具有大约一个或两个小时的寿命,而长寿代币通常具有大约60天的寿命。你不应该依赖这些生命周期保持不变 - 生命周期可能会在没有警告的情况下改变或提前到期。
这是User Access Token。 Passport处理用户登录和用户身份验证,并返回用户配置文件信息,而不是与其他3种令牌类型相关的任何信息。
用户令牌是最常用的令牌类型。只要应用程序调用API以代表他们读取,修改或写入特定人员的Facebook数据,就需要这种访问令牌。用户访问令牌通常通过登录对话框获得,并要求某人允许您的应用获取一个。
Passport没有在会话中明确存储accessToken,它通常会在user._id
调用passport.session()
时向用户存储唯一标识符,例如passport.serializeUser
,以便调用passport.deserializeUser
时可以找到用户对象。您可以在" What does passport.session() middleware do?"。