9

我的基于spring-social-twitter构建的应用程序使用户能够使用 Twitter 登录最近停止工作。

我收到如下错误消息:

此客户端应用程序未批准回调 URL。可以在您的应用程序设置中调整已批准的回调 URL

注意:我使用的是 Spring Social Twitter 版本 1.1.2.RELEASE。如果您使用 Spring Social Twitter 版本 1.1.0.RELEASE,您可能会收到稍有不同的错误消息,如下所示:

“ https://api.twitter.com/oauth/request_token ”的POST 请求导致 403(禁止);调用错误处理程序

4

2 回答 2

6

Twitter 最近(2018 年 5 月)强制要求使用 Twitter 登录的用户出于安全原因必须将回调 URL 列入白名单(请参阅公告)。

这意味着必须为所有受支持的第三方应用程序明确且相同地设置回调 URL。您可以在 Twitter 的应用程序设置页面中设置回调 URL:https ://apps.twitter.com

例如,如果您的回调 URL 是http://localhost:8080/myApp/signin/twitter,则必须将其添加到 Twitter 应用程序设置页面中的回调 URL 列表中,与其原样完全相同:http://localhost:8080/myApp/signin/twitter

在此处输入图像描述

另请参阅有关 Twitter 回调 URL 的文档

于 2018-06-29T13:40:38.717 回答
4

自从 Twitter 做出改变以提高安全性以来,我一直在为此苦苦挣扎。我的 android 应用程序将在 Intent Filter 中使用回调 URL 和相同的 URL。但自从更改后,我使用的 URL 必须在 Twitter 开发人员门户中注册。我使用的是 ouath://myapp,但 Twitter 不接受它作为有效的 URL(网站)。

经过一番挖掘,我发现对于应用程序,您可以指定任何方案,但只能作为方案。例如,我使用 myapp:// 作为回调 URL。

在我的应用程序中,我的回调 URL 是 myapp://whatever,在 Intent 过滤器中,我使用了:

<data android:scheme="myapp" android:host="whatever">

Twitter 接受了回调 URL,并在用户使用其 Twitter 凭据进行身份验证后正确地重定向回我的应用程序。

我最初只使用了一个普通的网站,这也可以,但在 Twitter 验证后,它询问我是否要重定向到我的应用程序或 Chrome 浏览器。使用上述方法,它只会返回到您的应用程序。

完成所有这些操作后,我意识到我可以将 Oauth:// 添加为回调 URL,我的应用程序无需更改即可运行。

于 2018-07-26T00:04:27.677 回答