OIDC - Inicio de sesión con redes sociales
Nuestro SDK soporta inicio de sesión con redes sociales usando OIDC con el flujo implícito.
Actualmente, los proveedores OIDC soportados incluyen:
- Google -> Configuración en Builder
- Apple -> Configuración en Builder
SequenceConfig
en su carpeta Resources.Una vez que el usuario inicia sesión correctamente, se devuelve un idToken mediante un deep link a la aplicación. Para habilitar el deep linking, debemos registrar un esquema de URL personalizado para nuestra aplicación. Hay algunos requisitos específicos de cada plataforma para configurarlo.
Editor
Para que el inicio de sesión con redes sociales funcione en el editor, necesitará desplegar un servidor simple en su máquina local. Proporcionamos una implementación de ejemplo aquí.
Para desplegar este servidor de ejemplo, siga estos pasos.
- Descargue e instale Go: https://go.dev/dl/
- Abra una terminal o consola de comandos y verifique su instalación escribiendo
- Cree un directorio para su proyecto en Go y un archivo main.go
- Copie y pegue el gist en el archivo main.go
- Inicialice el proyecto creando un módulo de Go
- Ejecute el servidor
- Debería ver
Server listening on port 8080
impreso en su terminal o consola de comandos
Si decide desplegar el servidor en otro lugar (otro puerto, un servidor público, etc.), deberá cambiar el valor de OpenIdAuthenticator.RedirectUrl
en su código antes de iniciar el proceso de inicio de sesión
Nota: debe usar un cliente web para su proveedor de inicio de sesión con redes sociales con http://localhost:8080/
(o la URL de su servidor) en la lista blanca como URL de redirección bajo Standalone Platforms
en SequenceConfig
iOS
Iniciar sesión con Apple
Este SDK es compatible con el inicio de sesión nativo con Apple mediante el popular paquete apple-signin-unity
. Esto requiere la capacidad de Sign in with Apple
en XCode para funcionar. Siempre que haya importado los scripts Setup
mediante Package Manager > Samples y/o tenga SignInWithApplePostprocessor.cs
bajo una subcarpeta Editor
, esta capacidad se agregará automáticamente a sus builds de XCode.
Tenga en cuenta que esta capacidad no es compatible con Personal Teams
.
Otras plataformas sociales
Todas las demás plataformas sociales son compatibles por defecto, solo asegúrese de agregar sus client IDs en SequenceConfig
.
MacOS
- Abra la ventana de Player Settings para Windows/Mac/Linux (menú: Edit > Project Settings > Player Settings, luego seleccione Windows/Mac/Linux).
- Seleccione
Other Settings
y luego desplácese hastaMac Configuration
. - Expanda la sección
Supported URL schemes
y aumente el tamaño en 1. - En el nuevo campo
Element N
, ingrese el esquema de URL que configuró enSequenceConfig
.
PC
No se requieren pasos adicionales.
Android
- En la ventana del Proyecto, navegue a
Assets > Plugins > Android
.
a) Nota: en versiones de Unity 2021.2 en adelante, esta ruta no existe por defecto. Por favor, diríjase a Edit > Project Settings > Player
y, en Android Publishing Settings, habilite Custom Main Manifest
en la sección Build. Consulte https://docs.unity3d.com/Manual/deep-linking-android.html para más información.
2. Si aún no existe, cree un archivo nuevo y llámelo AndroidManifest.xml
.
3. Pegue el siguiente XML en el archivo o, si ya tiene uno, agregue las nuevas claves de este XML al suyo.
4. Asegúrese de reemplazar ‘sdk-powered-by-sequence’ por el esquema de URL que configuró en SequenceConfig
b) Nota: Las versiones de Unity 2022 anteriores a 2022.3.7f1
y las de 2023 anteriores a 2023.1.7f1
, 2023.2.0b3
o 2023.3.0a1
contienen un error con el deep-linking en Android. Por favor, use este XML en su lugar.
Es decir, agregue <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
después de su primer intent-filter
. Consulte https://forum.unity.com/threads/deep-linking-in-unity-2022-the-app-is-restarted.1447300/ para más información.
UnityPlayerActivity
en su AndroidManifest por UnityPlayerGameActivity
. También podría ser necesario cambiar su android:theme
; hemos comprobado que “@style/BaseUnityGameActivityTheme” funciona bien en nuestras pruebas.Web
El inicio de sesión con redes sociales en plataformas web utiliza React mediante el WebGLTemplate que se encuentra en WebGLTemplates/SequenceReact
. Esto ha sido validado en WebGL y WebGPU. Para aprender cómo habilitar WebGPU en Unity, consulte este post en el foro.
Tenga en cuenta que Google es el único proveedor OIDC actualmente compatible en plataformas web mediante nuestro WebGLTemplate SequenceReact
por defecto; sin embargo, puede ampliarlo para agregar soporte a otros proveedores OIDC compatibles con nuestra API.
Configuración inicial única
Arrastre esta carpeta WebGLTemplates
a Assets
(o simplemente arrastre la plantilla SequenceReact
a su carpeta existente de WebGLTemplates
si ya tiene una) para que la ruta sea Assets/WebGLTemplates/SequenceReact
.
WebGLTemplates
estén en Assets/WebGLTemplates
. Al igual que la carpeta Plugins
, si no están exactamente en esa ubicación, ¡Unity no los detectará!Una vez que haya agregado la plantilla SequenceReact
, reinicie el editor para que Unity la reconozca.
Desde aquí, puede seleccionar la plantilla en Project Settings > Player Settings > Resolution and Presentation
.
Compilación
Después de la configuración inicial, cuando compile su proyecto de Unity para plataformas web, se construirá como parte de un proyecto React.
- Abra una línea de comandos en la raíz de su nueva build (compilación)
- Instale pnpm si aún no lo tiene
- Ejecute
pnpm install
para instalar las dependencias - Ejecute
pnpm dev
para correr el proyecto en su localhost (por defecto en el puerto 4444, configurable enSequenceReact/package.json
) - Abra http://localhost:4444
Compression Format
(por ejemplo, Gzip o Brotli), se recomienda habilitar Decompression Fallback
en Player Settings > Publishing Settings
. Aprenda más sobre el despliegue de WebGL aquí: https://docs.unity3d.com/Manual/webgl-deploying.htmlSequenceWallet.OnWalletCreated
para recibir su wallet recién creada!