gpt4 book ai didi

Android Oauth随机返回认证错误 "nonce_used"

转载 作者:行者123 更新时间:2023-11-29 22:16:02 25 4
gpt4 key购买 nike

我正在尝试创建一个 Fitbit应用程序,为此我修改了一个 example Twitter Oauth app从 fitbit 获取数据。我现在遇到的问题是随机会出现以下错误:

12-08 18:36:46.274: W/DefaultRequestDirector(439): Authentication error: Unable to respond to any of these challenges: {oauth=WWW-Authenticate: OAuth realm="http%3A%2F%2Fapp4int.fitbit.com", oauth_problem="nonce_used"}
12-08 18:36:46.284: W/System.err(439): org.apache.http.client.HttpResponseException: Unauthorized
12-08 18:36:46.294: W/System.err(439): at org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:71)
12-08 18:36:46.294: W/System.err(439): at org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:59)
12-08 18:36:46.294: W/System.err(439): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:657)
12-08 18:36:46.294: W/System.err(439): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:627)
12-08 18:36:46.294: W/System.err(439): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:616)
12-08 18:36:46.305: W/System.err(439): at org.knoesis.healthcare.HealthcareAppActivity$GetCredentialsTask.doInBackground(HealthcareAppActivity.java:149)
12-08 18:36:46.305: W/System.err(439): at org.knoesis.healthcare.HealthcareAppActivity$GetCredentialsTask.doInBackground(HealthcareAppActivity.java:1)
12-08 18:36:46.305: W/System.err(439): at android.os.AsyncTask$2.call(AsyncTask.java:185)
12-08 18:36:46.305: W/System.err(439): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
12-08 18:36:46.334: W/System.err(439): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
12-08 18:36:46.444: W/System.err(439): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
12-08 18:36:46.444: W/System.err(439): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
12-08 18:36:46.444: W/System.err(439): at java.lang.Thread.run(Thread.java:1096)

其中有趣的部分是我研究过的“oauth_problem="nonce_used"',它说“nonce_used:oauth_nonce 值已在先前的请求中使用,因此现在不能使用。”哪个值是 oauth_nonce 值,我如何获得一个新值以供使用?

如果在这里发布有问题的代码会有帮助,请告诉我。

最佳答案

OAuth 随机数用于通过确保您发出的每个有效请求只能被接受一次来防止播放攻击。

自从我搞砸 OAuth 以来已经有一段时间了,但我认为您只需要包括一个随机生成的字符串(我想我使用了连接到请求的用户名的系统时钟时间和 MD5 散列结果)作为随机数你提出的每一个要求。显然,这需要合并到您的签名生成代码中。

关于Android Oauth随机返回认证错误 "nonce_used",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8435992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com