Auth0 Swift SDK .authentication()。login返回无效令牌

时间:2018-09-10 19:06:13

标签: ios swift auth0

我最近开始了一个使用Auth0的新项目,其中将一个iOS应用添加到现有的Web应用项目中。该网络应用使用一台机器来处理Auth0应用,并且我们添加了Auth0本机应用来处理iOS身份验证。

如果我使用.webauth()调用,那么一切都按预期工作。 webauth返回一个有效的令牌,并通过断点跟踪代码,以确保它通过了PKCE流程。

我想知道的问题是,是否可以使用Swift SDK和.authentication()。login获得有效的令牌,以便创建自定义登录页面。设计人员的要求是定制是我们需要的。

当前,如果我只使用.authentication()。login调用,它将返回无效的令牌。我可以看到,此流程不遵循PKCE协议,而是返回一个令牌,该令牌的标头上说它是用RS256签名的,而实际上是用HS256签名的。

我看到可以通过RESTful调用(和使用Webview ...)实现PKCE身份验证的位置,但是我认为可以使用提供的swift SDK来实现。任何提示或帮助将不胜感激。

使用Auth0.Swift 1.2.2,Xcode 10 beta,iOS 11,Swift 4。

webauth呼叫:

&

authentication()调用:

Auth0
   .webAuth()
   .connection("MY-CONNECTION)
   .audience("https://myapp.auth0.com/userinfo")
   .start { result in
        switch result {
        case .success(let credentials):
            print("credentials: \(credentials)")
        case .failure(let error):
            print(error)
         }
     }

谢谢

ben

1 个答案:

答案 0 :(得分:0)

已向我指出,创建自定义Auth0登录名基本上违反了Auth0试图提供的安全性。它将用户名和密码的处理权从Auth0手中移开,然后又由应用程序的创建者处理。

因此,自定义登录不应视为设计的一部分。尽管缺乏可定制性,但我将实现.lock登录流程,以免于不得不在我的应用程序中使用网络登录。

只是想把它放在这里,以防其他人陷入我的境地。