Android与OAuth: 用户在哪授权? (还没研究透)

OAuth之所以适合三方协作,就是因为用户不需要在第三方系统里直接用户名/密码;而是在OPEN ID提供者的系统里输入,然后再跳到第三方系统。

在B/S环境下,OAuth通过浏览器跳来跳去完成这种事;但Android这种C/S环境下,怎么搞?

我初略地做了些研究,得出的结论是大概有几种方式:

1. 新浪微博的OAUTH2:
第三方应用通过web view或者什么方式弹出浏览器,让用户在一个很小的新浪授权页中输入用户名/密码,然后回到第三方应用。

2. 新浪微博的SSO:
第三方应用通过Intent启动本机中安装的微博Android应用,选择用户后回到第三方应用。 严格地说,这可能已经不是OAUTH了。 (我写这篇文章时weibo客户端的SDK没有源码,所以我无法深入研究,给出答案)

3. Google的AccoutManager.getAuth(): 第三方应用调用AccountManager.getAuth()时,Android会
启动AccountManager自带的一个Activity让用户决定是否授权
原文:During the AccountManager.getAuthToken() call the AccountManager will check if your application has been authorized to access the Tasks API. If your application has not yet been authorized an Activity is started by the AccountManager which displays an authorization dialog to the user so that they can Allow or Deny your application to use the API on their account.) . 看来AccountManager内置了对OAuth的支持。 由于google api被盾,这里的细节是怎么样,我也不得而知,只能以后再看了。

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.