Rails里面如果要做一个Oauth过程,在求Authorize的时候会redirect。该怎么维护那个consumer对象?把token和secret存在session里面?

2011-04-01 20:50:52 +08:00
 stranbird
5745 次点击
所在节点    Ruby on Rails
5 条回复
icyflash
2011-04-01 20:52:19 +08:00
dreamer
2011-04-01 20:56:37 +08:00
真巧,我最近也在研究这个。

你也可以不存到 session 里,在 Authorize redirect 的时候可以带上 oauth_callback 参数,把 token 和 secret 带上就行了,例如:

http://xxx.com/authorize?oauth_token=xxxx&oauth_token_secret=xxx&oauth_callback=http://yourname.com/aaa?oauth_token=xxx&oauth_token_secret=xxx

等授权通过之后,对方会跳转到 oauth_call_back 指定的网址,这样你就可以获取 http query string 了。
chloerei
2011-04-01 20:58:25 +08:00
做过一次,觉得未校验成功时放session里面比较环保。校验成功了再存数据库里。

另外可以看看这个 https://github.com/intridea/omniauth
stranbird
2011-04-01 20:58:47 +08:00
@dreamer 好办法
stranbird
2011-04-01 21:05:00 +08:00
还有个问题,是不是认证的方法一定要放在controller里面?
但是每次都在controller里边放一个OAuth::Consumer.new感觉很奇怪。
model里边可以放么?好像model里边没有redirect_to啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/10829

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX