我有一个用Swift制作的iOS应用程序,这是一个小社交网络。用户可以使用登录/密码连接,我将其保存在私人服务器上的数据库中。我想实现TouchID以帮助他们更快地登录。但是,我的用户'帐户未与其Apple ID相关联。
// Touch ID button has been clicked
func touchIDButtonClicked() {
print("touchIDButtonClicked");
//Is Touch ID hardware available & configured?
if(authContext.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error:&error))
{
//Perform Touch ID auth
authContext.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: "Connect to the network with your fingertips", reply: {(wasSuccessful:Bool, error:NSError?) in
if(wasSuccessful)
{
//User authenticated
print("OK");
// Log the user
}
else
{
//There are a few reasons why it can fail, we'll write them out to the user in the label
print("NO");
// Tell the user to use his password
}
})
}
}
我正在寻找的概念解决方案不仅仅是技术解决方案。我已经研究过TouchID了。有人能帮助我吗?
答案 0 :(得分:6)
Touch ID无法识别某人(无法告诉您是用户1还是用户2)。它验证一个人(电话的所有者)。
因此您无法单独使用Touch ID登录。您可以使用它,避免输入相同的凭据。
所以它会像这样工作:
答案 1 :(得分:-1)
鉴于用户名在您的数据库中是唯一的,您应该信任TouchId并仅通过用户名登录...顺便说一下,我的家庭银行应用程序的工作方式至少是低风险,而不是付款,功能
经过一番思考后,我意识到它根本不确定,直到你没有实现一些额外的架构机制,以确保登录来自你的应用程序
一个好的解决方案可以是使用identifierForVendor在用户名,app和设备之间建立强大的关联,方法是将其存储在数据库中并在登录时检查它