Недавно я начал новый проект, использующий Auth0, в котором я добавляю приложение iOS в существующий проект веб-приложения.Веб-приложение использует приложение Auth0 для компьютера, и мы добавили собственное приложение Auth0 для обработки аутентификации iOS.
Все работает как положено, если я использую вызов .webauth ().Webauth возвращает действительный токен, и через контрольные точки я проследил за кодом, чтобы убедиться, что он проходит процесс PKCE.
Вопрос, который меня интересует, заключается в том, возможно ли использовать Swift SDK и .authentication () .login, чтобы получить действительный токен, чтобы я мог создать пользовательскую страницу входа.Требования дизайнеров таковы, что нам нужен именно заказ.
В настоящее время, если я просто использую вызов .authentication (). Login, он возвращает неверный токен.Я вижу, что этот поток не следует протоколу PKCE и возвращает токен, заголовок которого говорит, что он подписан с RS256, когда в действительности он подписан с HS256.
Я вижу, где я могу реализовать аутентификацию PKCE с помощью вызовов RESTful(и используя веб-просмотр ...), но я думаю, что это было бы возможно с предоставленным быстрым 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)
}
}
Аутентификация () вызов:
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)")
}
}
Спасибо,
Бен