我最近开始了一个使用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
答案 0 :(得分:0)
已向我指出,创建自定义Auth0登录名基本上违反了Auth0试图提供的安全性。它将用户名和密码的处理权从Auth0手中移开,然后又由应用程序的创建者处理。
因此,自定义登录不应视为设计的一部分。尽管缺乏可定制性,但我将实现.lock登录流程,以免于不得不在我的应用程序中使用网络登录。
只是想把它放在这里,以防其他人陷入我的境地。