首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ASWebAuthenticationSession连接到Strava帐户失败

使用ASWebAuthenticationSession连接到Strava帐户失败
EN

Stack Overflow用户
提问于 2019-04-26 23:35:24
回答 1查看 1.3K关注 0票数 1

我在使用用于iOS应用程序中OAuth2进程的新ASWebAuthenticationSession类时遇到了问题。

我想使用这个类将我的应用程序与我的Strava帐户连接起来。我有以下代码:

代码语言:javascript
复制
class AuthController
{
    private var authSession: ASWebAuthenticationSession?

    func authenticate()
    {
        let string = self.createWebAuthUrl()
        guard let url = URL(string: string) else { return }

        self.authSession = ASWebAuthenticationSession(url: url, callbackURLScheme: "MaccaStravaWebAuth://", completionHandler:
        {
            url, error in

        })

        self.authSession?.start()
    }

    fileprivate func createWebAuthUrl() -> String
    {
        var url = String.empty

        url.append("https://www.strava.com/oauth/mobile/authorize")
        url.append("?client_id=000000") // Removed for stackoverflow...
        url.append("&redirect_uri=MaccaStravaWebAuth://test.com")
        url.append("&response_type=code")
        url.append("&approval_prompt=force")
        url.append("&grant_type=authorization_code")
        url.append("&scope=activity:write,activity:read_all")

        return url
    }
}

我将定制的URL方案添加到我的info.plist文件中。我将示例代码中的回调url更改为"test.com",但实际上这与我的Strava应用程序设置中使用的回调url完全相同。

当我调用authenticate()函数时,弹出一个对话框,并打开Strava站点。当我点击“授权”时,completionHandler不会被调用(它只在我点击取消时被调用)。

我必须添加一些不同的东西吗?我的回调urls是否有效?我尝试了回调URL方案和我在Strava中设置的回调url的几种组合,但都不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-29 14:03:01

因为我非常确定我的代码是正确的。我通过打开Safari并输入用作回调URL方案的自定义url方案来测试这一点。显示了一个提示符-因此我知道自定义URL方案已正确设置。

现在,我尝试清除Safari缓存,这似乎解决了问题。

现在,在我点击Authorize按钮后,我的应用程序将重新打开。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55870833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档