Estoy enviando a un usuario al sitio de autenticación de Apple donde completan su información de inicio de sesión de Apple en un formulario:
const signInWithApple = () => { const params = { client_id: Config.APPLE_AUTH_CLIENT_ID, redirect_uri: 'https://www.example-site.com/auth/apple/', scope: 'name email', response_type: 'code', response_mode: 'form_post', }; const loginUrl = `https://appleid.apple.com/auth/authorize?${queryString.stringify(params)}`; window.open(loginUrl, '_blank', `scrollbars=yes, width=520, height=570`); }; Una vez que ha autenticado al usuario, lo redirige a la URL definida en la propiedad redirect_uri . Luego verifico el token e inicio sesión con el usuario de mi lado. Eso funciona maravillosamente.
El problema ocurre cuando, en lugar de abrir la ventana con los campos del formulario, abre una hoja en la parte inferior del navegador móvil Safari para permitir que el usuario use la identificación facial. Si continúa con eso, parece que reconoce su rostro y cierra la hoja, pero nunca redirige al usuario a mi página de URL donde inicio sesión después de verificar su token.
¿Alguien se ha encontrado con esto? Me encantaría algunas ideas sobre cómo resolver esto por favor!
Finalmente, uso apple auth js sdk para resolver este problema, solo para safari🥲
El documento está aquí:
// add this script to your website <script src="https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/zh_CN/appleid.auth.js"></script> // or en_US <script src="https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js"></script> // init sdk window.AppleID.auth.init({ clientId: YOUR_APPLE_CLIENT_ID, scope: 'name email', redirectURI: redirectUrl, state: state, nonce: String(Date.now()), usePopup: true, }) // get auth const { authorization: { code, id_token, state }, user, } = await window.AppleID.auth.signIn()