分享 怎样在服务器模拟 Oauth2 的用户授权?

clc3123 · 2011年12月16日 · 最后由 buptning 回复于 2012年08月26日 · 5999 次阅读

我正在做新浪微博的一个应用,我需要在服务器端,用自己的帐号获取一些信息。

以前 Oauth1 的时候,新浪发的 access token 不会过期,也就是说,除非我在应用设定中取消授权,否则 access token 可以一直用,那么我人工登录下,把 access token 抄下来,写到程序中,那么服务器就可以用这个 token 通过 api 获取信息。

可是新浪新应用只让用 Oauth2,但是每次下发的 access token 只让用一天,第二天失效。那么我每天都要通过我手工从浏览器登录授权页面抄下 token,这样也太不专业了。。。

我想问问有没有一种方案,简单点的,能在程序中模拟登录新浪微博我的 app 的授权页,模拟填入我的帐号密码?我正在用 curl 慢慢试,但还没成功,大家有没有好的方法推荐下吧,多谢!

这是因为没认证应用的关系么?

如果每个 access token 只能用一天的话,那还有什么用啊。

每天各种应用都要用户再授权..

补充以下:新浪新政策是 access token 只能用一天!!!

大家帮帮我啊!

昨天我也做这个 oauth2.0,不过今天改回了以前的 token 和 secret 模式。现在这个 24 小时策略估计会修改,不过要等。要不你也再改回去吧。 我使用 weibo gem https://github.com/ballantyne/weibo

#3 楼 @sandy_xu 谢谢,刚才逛了支持论坛,看到客服说 oauth1 要关闭了以后,而且新应用貌似用不了 oauth1 了。现在京东新蛋啊,又拍啊还是 oauth1。可怜我们这些后来的。

刚用 watir 试了下,虽然在桌面环境下可以调用 firefox,模拟出登录效果,可是在服务器环境下不装 gnome 的话调用不成功,装 gnome 又不太好。。。再看看,看到个 capybara-webkit,不知道行不行。

现在还可以 oauth1,我是前今天通过应用审批的,但不是站内应用,是网站连接。 oauth2 应该有个 refresh_token 之类的 api 来刷新 token 吧?

#5 楼 @ywencn No!refresh_token 不下发的,问了客服了。我去试试 oauth1 算了

在 ubuntu server 装了 xserver 启动了图形界面,这样就可以通过 watir 调用 firefox 了。又学到个 linux 概念。 内存多了 40M 左右。方法也不咋的,凑合,有其它好方法希望大家提出,尤其是 curl 能实现最好了。 还得调教下 xserver。。。

你好,问下你这个问题最后是怎么解决的?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号