我正在android上构建一个REST客户端来与Bitbucket API进行通信。 我遇到了OAUTH2.0的问题。
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="redirecturi" android:scheme="your" /> </intent-filter>
发送给Bitbucket
private final String redirectUri = "your://redirecturi";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
Button loginButton = (Button) findViewById(R.id.loginbutton);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(
Intent.ACTION_VIEW,
//Uri.parse("" + "/login" + "?client_id=" + clientId + "&redirect_uri=" + redirectUri));
Uri.parse("https://bitbucket.org/site/oauth2/authorize" + "?client_id=" + clientId + "&redirect_uri=" + redirectUri));
startActivity(intent);
}
});
}
我的问题是: - 我如何在Bitbucket消费者对象和我的应用程序的请求中配置重定向URI或回调URL,以确保Android设备返回到我的应用程序,因此我的应用程序可以捕获来自Bitbucket的响应(并且此响应应该具有access_token,我“我需要的。”
答案 0 :(得分:1)
管理此操作的一种简单方法是使用WebView
,而不是通过意图打开您的OAuth链接。无论何时在WebView中重定向,都可以实际检查URL。为此,您必须覆盖
public boolean shouldOverrideUrlLoading(WebView view,String url)
每当您被重定向到另一个链接(或在这种情况下您的回调uri)时,您可以检查或比较获得的网址并相应地继续。