如何在Rails3中使用oauth连接Gmail的IMAP服务器?

12
我发现了gmail_xoauth gem,它实现了我需要的大部分功能,但我还需要在Rails3中生成OAuth令牌(consumer_key 和 consumer_secret)。
我正试图将Gmail的OAuth集成到我的网站中,因此不能使用上述gem引用的python脚本。我希望我的网站可以将用户带到认证页面并提取consumer_key/secret令牌。
我对OAuth还不熟悉,所以可能有一些显而易见的问题我没有注意到。
更新:我解决了上面的问题,并撰写了一篇博客文章介绍了详细过程(内容太长,无法在这里展示):http://blog.asif.in/blog/2012/03/03/google-oauth-and-rails/

1
对于赏金猎人而言:这个问题的答案可能会相当复杂,因此如果你有完整的博客文章链接,我将会接受它。我非常确定任何正确的答案都将利用@sheikh提到的插件和https://github.com/pelle/oauth的组合。 - SooDesuNe
这意味着答案需要解决以下问题:1)从提供者获取消费者访问权限;2)为用户存储任何适当的信息;3)向Gmail发出消费者请求。 - SooDesuNe
还有一件事,如果能提供一个SMTP/IMAP(发送/接收)的示例就更好了。 - SooDesuNe
1
omniauth 也许是一个合适的 gem。 - SooDesuNe
2个回答

2
您可能想查看OmniAuth。这是一个宝石,封装/抽象了必须为OAuth以及其他身份验证/授权协议(如OpenID和LDAP)完成的许多底层协议工作。我对Google用于发送/接收电子邮件的API不是很熟悉,但认证是第一步。
OmniAuth的维基上有一个非常好的教程,介绍了如何将其与OpenID和Google Apps一起使用,但这可能并不完全符合您在IMAP方面寻求的内容。您可能需要为OmniAuth编写自己的提供程序(有一个很好的教程可用于描述此过程)。Google还提供了一个参考网站,用于通过IMAP和OAuth进行身份验证/授权。对您最相关的部分可能是详细说明协议的页面detailing the protocol。希望这可以帮到您!

我尝试使用OmniAuth,但它对我来说效果不佳。我通过将Google的示例Python代码转换为Ruby,并添加适当的控制器来使其正常工作。由于这相当复杂,我很快就会撰写一篇博客文章详细介绍。 - Asif Sheikh
1
你在使用OmniAuth时遇到了什么问题? - Anthony Burns

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接