【发布时间】:2016-11-24 02:28:44
【问题描述】:
我们正在使用带有 Twitter API 的 Oauth 1.0 身份验证流程。这基本上归结为这个规范:http://oauth.net/core/1.0/#anchor9。
我们创建了应用程序并开始吸引用户。后来我们使用 Twitter 实现了注册,现在我们需要来自 API 的用户电子邮件地址。我们询问了 Twitter,请求得到了批准。很好用,很好。
现在我们遇到了现有用户的问题,因为那些在我们获得电子邮件权限之前授权应用程序并且使用他们现有的访问令牌的人,Twitter 没有给我们。
Twitter 在他们的文档中写道 (https://dev.twitter.com/rest/reference/get/account/verify_credentials)
注意
您的应用将需要重新生成用户访问令牌,以便以前经过身份验证的用户访问他们的电子邮件地址。
如何做到这一点?
当我们删除我们这边的相应数据(令牌和秘密)并要求新的身份验证时,它没有任何效果。 Twitter 总是再次向我们提供相同的令牌和秘密......并且在 account/verify_credentials 中调用没有电子邮件地址。
我们发现唯一可行的方法是登录 Twitter 并撤销对应用程序的访问权限。然后我们得到一个新的令牌和秘密,让我们可以访问我们想要的东西。
但我们不想告诉我们的用户,而是使用 API 以编程方式执行此操作。怎么样?
【问题讨论】: