【问题标题】:OAuth2 with Yahoo API带有 Yahoo API 的 OAuth2
【发布时间】:2018-04-10 03:37:47
【问题描述】:

我想读取和写入用户的Yahoo Fantasy Sports 数据。

我正在尝试使用OAuthSwift 通过Yahoo API 获得访问权限。

我的 OAuthSwift 对象如下所示:

let oauth2Swift = OAuth2Swift(
    consumerKey:    "*****",
    consumerSecret: "*****",
    authorizeUrl:   "https://api.login.yahoo.com/oauth2/request_auth",
    accessTokenUrl: "https://api.login.yahoo.com/oauth2/get_token",
    responseType:   "code"
)

我是这样执行的:

    self.oauth2Swift.authorize(withCallbackURL: "com.me.myapp", scope: "fspt-w", state: "", success: { (cred, response, params) in
        print("✅ success")
    }) { (error) in
        print("???? error")
    }

我在 Yahoo 的开发者网站上创建了一个应用实例,并确保回调域与之前代码 sn-p 中使用的域匹配:

我的 iOS 应用程序在浏览器中成功启动了 Yahoo 登录体验,但是一旦用户登录它就会显示以下错误:

开发者:请检查您请求中的重定向 URI 并提交 再次。

所以我的问题是:为什么在 Swift 中尝试使用 OAuth 授权 Yahoo 用户时出现上述错误?

【问题讨论】:

    标签: ios oauth oauth-2.0 yahoo-api


    【解决方案1】:

    身份提供者将使用回调中指定的 URL 重定向到客户端应用程序。尝试将回调 URL 更改为应用程序的身份验证端点。我曾经用callbackURL: "http://127.0.0.1:xxxx/auth/yahoo/callback" 进行测试并且曾经工作过。当然配置的回调域应该和URL中的域匹配

    【讨论】:

    • 嗨,我用它作为回调 URL,不幸的是仍然遇到同样的错误
    • 您是否错过了处理重定向的终点?您可以使用此文档OAuth2 in Python 来交叉检查您的代码。我在 Spring 中实现了,所以我在路径 /yahoo/callback 上有一个身份验证过滤器来处理重定向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 2015-06-15
    • 1970-01-01
    相关资源
    最近更新 更多