[英]Auth0 Swift SDK .authentication().login returning invalid token
我最近开始了一个使用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调用:
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)
}
}
authentication()调用:
Auth0
.authentication()
.login(
usernameOrEmail: "me@mycompany.com",
password: "password",
realm: "MY-CONNECTION",
audience: "https://myapp.auth0.com/userinfo",
scope: "openid")
.start { result in
switch result {
case .success(let credentials):
print("Obtained credentials: \(credentials)")
case .failure(let error):
print("Failed with \(error)")
}
}
谢谢,
本
已经向我指出,创建自定义Auth0登录名基本上违反了Auth0试图提供的安全性。 它将用户名和密码的处理权从Auth0手中移开,然后又由应用程序的创建者处理。
因此,自定义登录不应视为设计的一部分。 并且尽管缺乏可定制性,我仍将实现.lock登录流程,以免于不得不在我的应用程序中使用网络登录。
只想把它放在这里,以防其他人遇到我的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.