dre*_*kka 18 authentication oauth node.js
我有一个iOS,它使用OAuth和OAuth2提供商(Facebook,谷歌,推特等)来验证用户并提供访问令牌.除了名称和电子邮件地址等最小数据外,应用程序不会将这些服务用于除身份验证之外的任何其他服务.
然后,应用程序将访问令牌发送到服务器,以指示用户已通过身份验证.
服务器是用Node.js编写的,在做任何事情之前,需要根据正确的OAuth*服务验证提供的访问令牌.
我一直在环顾四周,但到目前为止,我发现的所有node.js身份验证模块似乎都是用于登录并通过服务器提供的网页进行身份验证.
有没有人知道任何可以对提供的访问令牌进行简单验证的node.js模块?
Gij*_*ijs 60
据我所知(并且从我阅读规范中可以看出)OAuth和OAuth 2规范没有为访问令牌验证指定单个端点.这意味着您将需要每个提供程序的自定义代码才能验证访问令牌.
我查找了如何处理您指定的端点:
似乎其他人使用图API的"我"端点来检查令牌是否有效.基本上,请求:
https://graph.facebook.com/me?access_token={accessToken}
Run Code Online (Sandbox Code Playgroud)
谷歌有一个专门的端点来获取访问令牌信息,也有很好的文档.基本上,请求:
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token={accessToken}
Run Code Online (Sandbox Code Playgroud)
Twitter似乎没有一个非常明显的方法来做到这一点.我怀疑,因为帐户设置数据非常静态,这可能是最好的验证方式(提取推文可能会有更高的延迟?),所以你可以请求(使用适当的OAuth签名等):
https://api.twitter.com/1.1/account/settings.json
Run Code Online (Sandbox Code Playgroud)
请注意,此API的速率限制为每个窗口15次.
总而言之,这似乎比首次出现时更棘手.在服务器上实现某种会话/身份验证支持可能是个更好的主意.基本上,您可以验证一次获得的外部OAuth令牌,然后为用户分配一些您自己的会话令牌,您可以使用自己服务器上的用户ID(电子邮件,FB ID等)进行身份验证,而不是继续向OAuth提供商请求您自己获得的每个请求.
希望有所帮助!
归档时间: |
|
查看次数: |
8691 次 |
最近记录: |