我有现有的Web应用程序,并有专门的Yahoo App工作。它使用OAuth2 Implicit Grant Flow

现在,我要设置另一个按相同原理工作的域。我用新的回调域创建了新的Yahoo App
javascript - Yahoo OAuth2隐式授予流不适用于新的Yahoo应用-LMLPHP

用于获得用户同意的网址(在两种情况下)均为https://api.login.yahoo.com/oauth2/request_auth?client_id=consumer_key&redirect_uri=https://redir_url&response_type=token

它适用于旧域和旧Yahoo App(消费者 key 以-结尾)
但它不想与新域和新Yahoo应用一起使用(由于某种原因,Consumer Key不能以结尾)。

我在征得用户同意后收到此消息link:



尽管我提供了有效的response_token。您知道为什么它不适用于新域和新Yahoo应用程序的原因吗?

代码:

var authorizationUrl = 'https://api.login.yahoo.com/oauth2/request_auth'
            + '?client_id=' + encodeURIComponent(consumerKey)
            + '&redirect_uri=' + encodeURIComponent(redirectUri)
            + '&response_type=token';

window.open(authorizationUrl, '_blank', 'location=yes,height=570,width=650,scrollbars=yes,status=yes');

最佳答案

似乎API要求使用文字字词“id_token”(或“code”或“token”)作为response_type参数。您没有发布代码,但是听起来您实际上是在为该参数输入response_token id值。

查看Yahoo API documentation,这是一个与您的URL相似的示例URL:



您可以看到他们写道:&response_type=id_token,而不是&response_type=934984kklsdkjklfs或类似名称。

通常,OAuth API调用通常会发回对您的API session 有效并最终过期的访问 token 或响应 token 。此参数描述您希望API返回的 token 类型。

我无法谈论两个版本的应用程序之间可能发生的变化,但是我建议您查看Yahoo API文档的versioningWhat's New部分。

关于javascript - Yahoo OAuth2隐式授予流不适用于新的Yahoo应用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53609805/

10-15 19:30