【问题标题】:Using Intent to retrieve Authorization Code使用 Intent 检索授权码
【发布时间】:2018-06-27 19:44:08
【问题描述】:

我正在使用这篇文章和答案尝试从我的重定向 url 中检索授权码,但它不起作用,但该人已接受它作为正确答案:

How to get Authorization code using Intent

这是我使用的代码:

public class Kiteworks_SignIn extends Activity {

Uri uri;
String redirect_uri;
String authcode;
WebView webView;
Button browser;
Intent browserIntent;
String kiteworksurl;
Intent getAuthCode;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.kiteworks_sign_in);

    browser = findViewById(R.id.buttonBrowser);

    browser.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getAuthCode = new Intent(Intent.ACTION_VIEW, Uri.parse("https://sync.almacgroup.com/oauth/authorize?client_id=1fb7c350-bb6a-5741-86b9-43afc2f1642f&redirect_uri=https://sync.almacgroup.com/rest/callback.html?display%3Dmobile&response_type=code&scope=&m=1&force_login=1"));
            startActivity(getAuthCode);

        }
    });
}

@Override
protected void onNewIntent(Intent intent) {
    Uri uri = getAuthCode.getData();
    if (uri != null) {
        String mainPart = uri.toString().split("#")[1];
        String[] arguments = mainPart.split("&");
        String argument = arguments[0];
        String token = argument.split("=")[1];
        Toast.makeText(this, token, Toast.LENGTH_SHORT).show();
    }
}

基本上我和这个家伙有完全相同的情况。我的应用程序重定向,我不确定如何提取授权码。我已经调试了 OnNewIntent 方法,但它没有捕获或触发调试,所以我无法查看是否有任何问题。

这是我的重定向 URL 到达后的格式:

https://sync.almacgroup.com/rest/callback.html?display=mobile&code=(THEN THE CODE FOLLOWS)

我是不是在做一些不同的事情,或者为什么这不起作用?

谢谢

【问题讨论】:

  • @FD_ 我可以看到你回答了上一个问题,有什么想法吗?

标签: java android http android-intent oauth-2.0


【解决方案1】:

如果你需要从这种 url 中拆分代码,为什么要从“#”中拆分出来。 你可以用这个。

    String mainPart = uri.toString();
    String[] data = mainPart.split("?");
    String arguments = data[1];
    String[] argument = arguments.split("=");
    String token = argument[1];
    Toast.makeText(this, token, Toast.LENGTH_SHORT).show();

【讨论】:

  • 似乎仍然为空。会不会有别的问题? onNewIntent 似乎没有做任何事情
  • 你确定 uri 被解析为字符串。
  • 如何检查?
  • 实际上很抱歉 - 我试图从中获取数据的意图应该是我的回调而不是完整的 url - 我如何从回调 url 获取数据但还需要按顺序启动完整的 url登录
  • 我认为重定向发生时没有给出 URL
猜你喜欢
  • 2022-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
相关资源
最近更新 更多