0
我在中使用iOS
应用程序为用户提供服务器支持。 当有人想要更改他的凭证(电子邮件/密码)或他的显示名称时,我请求确认当前凭证。有没有一种方法(API)检查提供的凭证是否与当前登录的用户相匹配,除了执行注销并尝试再次登录之外,希望提供的凭证是否正确?如何在用户登录时确认凭证? (在Firebase上)
我在中使用iOS
应用程序为用户提供服务器支持。 当有人想要更改他的凭证(电子邮件/密码)或他的显示名称时,我请求确认当前凭证。有没有一种方法(API)检查提供的凭证是否与当前登录的用户相匹配,除了执行注销并尝试再次登录之外,希望提供的凭证是否正确?如何在用户登录时确认凭证? (在Firebase上)
使用以下方法,使用火力
let user = FIRAuth.auth()?.currentUser
var credential: FIRAuthCredential
// Prompt the user to re-provide their sign-in credentials
user?.reauthenticate(with: credential) { error in
if let error = error {
// An error happened.
} else {
// User re-authenticated.
}
}
电子邮件重新认证用户:
let credential = FIREmailPasswordAuthProvider.credentialWithEmail(email,` password: password)
Facebook的:
let credential = FIRFacebookAuthProvider.credentialWithAccessToken(FBSDKAccessToken.currentAccessToken().tokenString)
Twitter的:
let credential = FIRTwitterAuthProvider.credentialWithToken(session.authToken, secret: session.authTokenSecret)
谷歌:
let authentication = user.authentication
let credential = FIRGoogleAuthProvider.credentialWithIDToken(authentication.idToken, accessToken: authentication.accessToken)
继承人描述IOS ios user management in firebase
OK用户管理的火力链接。事实上,我只是通过使用FIRAuth.auth()?signIn()来重新验证身份,当登录名太旧时,却不知道它存在(重新验证)。无论如何,它似乎并不是我所希望的,如果证书是错误的,这种方法将简单地将用户登出(我想)。我只是想在引擎盖下进行一个简单的比较,而不用去注销用户。 – Michel
在这种情况下,您可以在本地保存证书,然后进行比较,只需确保在保存凭据的同时应用AES 256等一些加密技术。 –
我明白了。顺便说一下,如何设置您在答案中提到的凭证变量? (我正在使用Swift 3)。 – Michel