Yahoo OAuth2隐式授权流程不适用于新的雅虎应用程序

And*_* F. 5 javascript oauth-2.0 yahoo-api

我有现有的网络应用程序和专用的雅虎应用程序.它使用OAuth2隐式授权流程

现在我想建立另一个按照相同原则工作的域名.我用新的回调域 创建了新的Yahoo App新雅虎应用程序

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

它适用于旧域和旧雅虎应用程序(消费者密钥以 - 结尾)但它不想使用新域和新的雅虎应用程序(消费者密钥不会因某种原因而终止).

我在看到用户同意链接后收到此消息:

开发人员:请从代码,令牌或id_token中选择响应类型并再次提交.

虽然我提供了有效的response_token.你知道为什么它不适用于新域名和新的雅虎应用程序吗?

码:

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');
Run Code Online (Sandbox Code Playgroud)

S.S*_*.S. 2

看起来 API 要求提供文字“id_token”(或“code”或“token”)作为 response_type 参数。您没有发布代码,但听起来您实际上正在为该参数输入一个response_token id 值。

查看Yahoo API 文档,这里有一个与您的类似的示例 URL:

https://api.login.yahoo.com/oauth2/request_auth?client_id=dj0yJmk9WGx0QlE0UWdCa0hKJmQ9WVdrOWNrNUhXVnBhTkhFbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD01OA--&response_type=id_token&redirect _uri=https://yahoo.com&scope=openid%20mail-r&nonce=YihsFwGKgt3KJUh6tPs2

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

一般来说,OAuth API 调用通常会发回对您的 API 会话有效并最终过期的访问令牌或响应令牌。此参数描述您希望 API 返回什么类型的令牌。

我无法谈论您的应用程序的两个版本之间可能发生的变化,但我建议您查看雅虎 API 文档的版本控制新增功能部分。