早安。
我正在尝试在SwiftUI中实现登录页面,但是我无法弄清楚如何使应用程序在成功登录后提示用户保存其凭据。
这是输入字段的代码。
TextField("Phone number", text: $phoneNumber)
.keyboardType(.numbersAndPunctuation)
.textContentType(.username)
SecureField("Password", text: $password)
.keyboardType(.asciiCapable)
.textContentType(.password)
成功后,环境变量将更改,并且父组件将停止呈现登录页面。
我已启用“自动填充凭据提供程序”权利。
我试图实现的是使用本机中的“密码管理器”iOS,https://developer.apple.com/documentation/security/password_autofill。
[当用户提交其凭据并成功进行身份验证时,应该向他们显示与上述提示类似的提示,询问他们是否要保存用于登录的密码。
一种方法是使您自己的警报询问您是否要保存此数据,并在按钮操作调用上添加此名称以保存键入的用户名和密码(或电子邮件,无论如何):
let username:String = username.text!
let password:String = password.text!
let defaults = UserDefaults.standard
defaults.set(username, forKey: "username")
defaults.set(password, forKey: "password")
然后在您查看加载该登录页面时:
if (defaults.string(forKey: "username" && defaults.string(forKey: "password") {
// the guy already logged in once before so redirect him to another view
}
它不使用Apple的本机密码管理器,但可以为您的应用程序完成工作,如果您只需要从应用程序中进行此身份验证就可以了。如果您的网站Web应用程序使用相同的用户名和密码,则iOS密码管理器会更加有用。