繁体   English   中英

如何使用oauth gem验证传递到请求中的令牌?

[英]How do I use the oauth gem to validate a token passed into the request?

我正在尝试建立使用oauth 1签名请求对用户进行身份验证的服务。 该请求包括一个oauth令牌,签名,随机数和使用者密钥。 服务器可以访问相应的机密,但是尚不清楚如何使用oauth gem来验证令牌并检索相应的用户。 令牌最初是使用oauth-rails插件生成的,但是验证需要在与原始Rails应用程序不同的服务器上进行(但可以访问相同的基础数据库)。

如何使用oauth gem来完成此任务?

我已经查看了oauth和oauth-plugin gem的来源,但无法确定此验证实际上在哪里发生。 我可以找到的几乎所有文档都涉及使用oauth gem作为使用者,而不是提供者。

我终于想出了答案,所以我把它放在这里,希望将来能帮助到某个人。

从基础数据库检索AccessToken和ClientApplication对象并检查现时和时间戳后,验证签名就很容易:

签名= OAuth :: Signature.verify(request,{})做| sigblock | [token.secret,ca.secret]结束

如果签名签出,则签名为真。 请注意-如果您位于诸如nginx之类的http代理后面,则可能无法为https请求正确设置SERVER_PORT环境变量,因此您可能必须手动进行设置。 如果关闭了此请求(或请求的其他任何看起来很小的部分),则即使请求有效,也可能导致签名验证失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM