- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
App Id or redirect_uri does not match authorization code.
由于我对 OAuth 和应用程序开发非常陌生,所以我猜错误(大部分时间)在我这边。我的应用程序有一个按钮(登录),可将用户引导至 Web View ,用户通过 OAuth 登录 Misfit API ( https://build.misfit.com/ )。一旦他同意与我的应用程序共享他的 Misfit 数据,webview 就想将他重定向到我的 redirect_uri,但我总是收到上述错误消息。这是 OAuthActivity 的代码:
public class OAuthActivity extends Activity {
public static String OAUTH_URL = "https://api.misfitwearables.com/auth/dialog/authorize";
public static String OAUTH_ACCESS_TOKEN_URL = "https://api.misfitwearables.com/auth/tokens/exchange";
public static String CLIENT_ID = "ID";
public static String CLIENT_SECRET = "Secret";
public static String CALLBACK_URL = "http://iss.uni-saarland.de/";
public static String SCOPE = "public,birthday,email,tracking,session,sleeps";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auth_o);
String url = OAUTH_URL + "?response_type=code" +"&client_id=" + CLIENT_ID + "&redirect_uri=" + CALLBACK_URL + "&scope=" + SCOPE;
WebView webview = (WebView)findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
final SharedPreferences prefs = this.getSharedPreferences(
"com.iss_fitness.myapplication", Context.MODE_PRIVATE);
webview.setWebViewClient(new WebViewClient() {
public void onPageStarted(WebView view, String url, Bitmap favicon) {
String accessTokenFragment = "access_token=";
String accessCodeFragment = "code=";
// We hijack the GET request to extract the OAuth parameters
if (url.contains(accessTokenFragment)) {
// the GET request contains directly the token
String accessToken = url.substring(url.indexOf(accessTokenFragment));
prefs.edit().putString("Token", accessToken);
} else if(url.contains(accessCodeFragment)) {
// the GET request contains an authorization code
String accessCode = url.substring(url.indexOf(accessCodeFragment));
prefs.edit().putString("Code", accessCode);
String query = "grant_type=authorization_code" + "&client_id=" + CLIENT_ID + "&client_secret=" + CLIENT_SECRET + "&code=" + accessCode + "&redirect_uri=" + CALLBACK_URL;
view.postUrl(OAUTH_ACCESS_TOKEN_URL, query.getBytes());
}
}
});
webview.loadUrl(url);
}
}
我知道这应该以某种方式劫持授权 URL 以获取访问代码,如果访问代码不可用,请尝试获取 token 。有些人建议在 Activity 将我带到我的 redirect_uri 之前中断该 Activity,但我不知道该怎么做。
基于答案的附加信息:- 在 Misfit 应用程序设置中注册的重定向 URI 是我在代码中使用的重定向 URI。- 我为我的应用程序构建了一个 Intent 处理程序,以便在调用重定向 URI 时启动其主要 Activity 。
==========================================
在 REST 客户端我得到了同样的结果 >>>>
POST: https://api.misfitwearables.com/auth/tokens/exchange
请求:
{
"grant_type":"authorization_code",
"code":{{USER CODE FROM AUTH}},
"redirect_uri":"SAME REDIRECT_URI AS IN AUTH",
"client_id":{{my app id}},
"client_secret":{{my app secret}}
}
回复:
{
"error": "invalid_grant",
"error_description": "App Id or redirect_uri does not match authorization code"
}
最佳答案
这是一个猜测,但这是一个类似的错误,当您未能在 google api 控制台中注册您的应用程序时,您可能会看到 google。
如果您转到 misfits 控制台并为您的应用注册重定向 url,它应该可以工作:
希望对您有所帮助。
关于java - OAuth:App Id 或 redirect_uri 与授权码不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31350502/
我在SO上看过这里,并且找到了有关redirect_uri的几篇文章,但是我似乎无法弄清楚如何将Localhost用作我的重定向uri。希望任何人都可以向我解释。 亲切的问候, 最佳答案 您可以按照S
我们正在编写一个与 OAuth2 api 集成的插件。 棘手的部分是我们不能像在大多数集成中那样对重定向 URI 进行硬编码,因为客户端可以在他们控制的任何域上安装这个插件(想想 Wordpress
当我尝试从我的 api 访问 keycloak 来验证用户身份时,但它给我错误 Invalid parameter:iredirect_uri on keycloak page。我在师父之外创造了自己
类似的问题和答案都没有解决我的问题。 我有两个 Facebook 应用程序。一个是另一个的测试版本,因此它们几乎相同。我在测试中没有问题。但是在实时应用程序上,我收到“redirect_uri 不属于
我确信有一个相对简单的方法可以解决这个问题,但我需要一些帮助。我有一个登陆页面,它接受用户的电子邮件地址并生成一个唯一的 URL,用户可以使用该 URL 来推荐 friend 。我使用 AJAX 绑定
当我尝试通过网络在 Google Plus 中验证我的应用程序时,出现错误: 错误:invalid_requestredirect_uri 的参数值无效:缺少权限:MY_APP:/oauth2call
我通过在开发人员控制台注册我的项目获得了客户端 ID 和 API key 。并且在运行身份验证过程时出现这样的错误400. 这是一个错误。错误:redirect_uri_mismatch请求中的重定向
尝试登录身份服务器(使用 .net core 3 预览版)时,即使请求 uri 和允许的 uri 相同,我也会收到 Invalid redirect_uri 错误。 我还能做错什么? fail: Id
我有 keylcoak 的本地实例,我正在尝试将我的 flutter 应用程序连接到它,为此我正在关注 this tutorial但我被这个 redirect_uri 问题困住了。 在 android
我正在使用 Scribe API 实现 facebook 签名功能,但在提交 facebook 身份验证 url 后出现以下错误。 callback_url = http://localhost:18
我正在学习本教程 http://developers.facebook.com/docs/appsonfacebook/tutorial/特别是在这部分代码 $app_id = "YOUR_APP_
我在两台服务器上使用 facebook 应用程序,dev 和 live。开发服务器托管在 test.testdev.com,实时服务器托管在 test.teSTLive.net。早些时候它在两台服务器
我想在我的 iOS 应用程序中访问一些社交网络,例如 Instagram、Facebook、Twitter。我需要获取用户信息、他们的 friend 等。所有这些社交网络都使用 OAuth 2.0 来
我正在使用 linkedin 身份验证 api 来登录我的网站用户。 首先,我将重定向到以下 url: https://www.linkedin.com/oauth/v2/authorization?
我正在尝试将 Instagram 集成到 Android 应用程序中,并希望使用自定义架构,例如 - sociallogin://authorize 有没有办法在 Instagram 开发者门户中使用
我不断从 windows live 收到这个错误 The provided value for the input parameter 'redirect_uri' is not valid. The
目前我正尝试在我的网络应用程序上连接 paypal oauth 登录。但是我收到了这个错误 客户端代码 paypal.use(["login"], function (login) {
我正在尝试基于documentation使用React和Node开发一个应用程序: 我一步一步地按照本教程进行操作,但是我被困在使用此URL格式测试应用程序中: 我更换了ngrok地址和shopify
我如何编辑 redirect_uri在我的 SoundCloud 应用程序仪表板中?我去http://soundcloud.com/you/apps但没有找到编辑按钮。 最佳答案 目前无法进行编辑,因
我正在尝试让用户从我的 Flutter 应用登录到 Google API,但无法让它自动获取 token 。我最接近的是在授权屏幕中看到 token 字符串,并被要求将其复制/粘贴回应用程序。我怀疑它
我是一名优秀的程序员,十分优秀!