使用webview进行dropbox的oauth 2.0身份验证

时间:2014-08-26 12:20:54

标签: android oauth webview dropbox dropbox-api

我正在尝试将dropbox集成到我的应用程序中。如果我使用标准dropbox apis,登录时会将其重定向到浏览器或Dropbox应用程序。我确实希望远离我的应用程序,因此对于dropbox的oAuth 2.0身份验证,我想使用webview。

使用" Implicit Grant"

可以使用Dropbox

https://www.dropbox.com/developers/blog/45/using-oauth-20-with-the-core-api

但我无法实现这个" Implicit Grant"。我不确定将什么放入" REDIRECT URL"我正在形成的网址的一部分。

有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

您可以在重定向网址中添加所需内容。当Dropbox完成与用户的身份验证时,它将尝试加载您提交的REDIRECT_URI,但在此之前,WebViewClient将捕获该重定向。

webview.setWebViewClient(new WebViewClient() {
           @Override
           public boolean shouldOverrideUrlLoading(WebView view, String url) {
               ...
               if ( url.startsWith(REDIRECT_URI) ) {

                  // extract OAuth2 access_token appended in url
                  if ( url.indexOf("access_token=") != -1 ) {
                       accessToken = mExtractToken(url);

                       // store in default SharedPreferences
                       Editor e = getPreferences(Context.MODE_PRIVATE).edit();
                       e.putString(SHPREF_KEY_ACCESS_TOKEN, accessToken);
                       e.commit();
                   }

               // don't go to redirectUri
               return true;
               }

               // load the webpage from url: login and grant access
               return super.shouldOverrideUrlLoading(view, url); // return false;
           }
       });

获得http://techblog.constantcontact.com/software-development/implementing-oauth2-0-in-an-android-app/的代码。