ios - name - Guardar el GIDGoogleUser actual en lugar de iniciar sesión en cada lanzamiento
viewport iphone (2)
¿Está seguro de que no se ha desconectado o desconectado el usuario en algún lugar?
Siempre estoy comprobando si el usuario ha hasAuthInKeychain
actualmente o si se ha guardado la autenticación previa utilizando hasAuthInKeychain
(por ejemplo, en viewWillAppear
):
private func checkIfGoogleUserIsAuthorized() {
if GIDSignIn.sharedInstance().hasAuthInKeychain() {
// User was previously authenticated to Google. Attempt to sign in.
GIDSignIn.sharedInstance().signInSilently()
} else {
// User was not previously authenticated to Google.
self.updateUI()
}
}
En caso de que no haya una autenticación guardada, debe activar el inicio de sesión silencioso y manejar la respuesta con su implementación del método didSignInForUser
.
Estoy usando el GIDSignInButton
para registrar a mis usuarios en Google. El problema es que no estoy seguro de cómo guardar el usuario actual para que cada usuario no tenga que iniciar sesión cada vez que abre la aplicación. He intentado usar signInSilently()
pero no se The operation couldn''t be completed. (com.google.GIDSignIn error -4.)
The operation couldn''t be completed. (com.google.GIDSignIn error -4.)
cada vez.
Ese error, en el archivo de cabecera, dice esto:
// Indicates there are no auth tokens in the keychain. This error code will be returned by
// signInSilently if the user has never signed in before with the given scopes, or if they have
// since signed out.
kGIDSignInErrorCodeHasNoAuthInKeychain = -4,
En mi caso, el usuario ya ha iniciado sesión con los ámbitos dados y aún no se ha desconectado. Así que no estoy seguro de qué podría estar causando ese error.
Después de que un usuario signInSilently()
, ¿cómo debo guardar esa instancia donde puedo usar signInSilently()
después de eso? ¿Hay algún manejo involucrado con la actualización y los tokens de acceso también?
Si, en su proyecto, la clase que implementa GIDSignInUIDelegate
es una subclase de UIViewController
, entonces no implemente el
signInWillDispatch:error:
signIn:presentViewController:
signIn:dismissViewController:
Métodos del protocolo GIDSignInUIDelegate
.
Quita estos métodos de tu controlador de vista si agregaste. pero debe cumplir el protocolo GIDSignInUIDelegate
sin implementar los métodos.
Se solucionará su error -4.
Consulte la guía de desarrolladores de Google para obtener ayuda