1.0.10 • Published 6 months ago
react-native-wilbby-auth v1.0.10
react-native-wilbby-auth
react-native-wilbby-auth
es un módulo para React Native que facilita la integración de autenticación OAuth2 utilizando roles predefinidos. Permite autenticar usuarios con facilidad a través de un flujo de autorización estándar y manejar parámetros personalizados para la configuración.
Instalación
Para instalar react-native-wilbby-auth
en tu proyecto React Native, ejecuta el siguiente comando:
npm install react-native-wilbby-auth
iOS
```bash
cd ios && pod install
iOS pasos adicionales
En el proyecto Xcode tuapp/AppDelegate.mm
Añade
#import <React/RCTLinkingManager.h>
#import "RNAppAuthAuthorizationFlowManager.h"
#import <AuthenticationServices/AuthenticationServices.h>
#import <SafariServices/SafariServices.h>
- (BOOL) application: (UIApplication *) application
continueUserActivity: (nonnull NSUserActivity *)userActivity
restorationHandler: (nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
{
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
if (self.authorizationFlowManagerDelegate) {
BOOL resumableAuth = [self.authorizationFlowManagerDelegate resumeExternalUserAgentFlowWithURL:userActivity.webpageURL];
if (resumableAuth) {
return YES;
}
}
}
return [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
}
En el archivo tuapp/AppDelegate.h
#import <RCTAppDelegate.h>
#import <UIKit/UIKit.h>
#import <React/RCTLinkingManager.h>
#import "RNAppAuthAuthorizationFlowManager.h"
@interface AppDelegate : RCTAppDelegate <RNAppAuthAuthorizationFlowManager>
@property(nonatomic, weak) id<RNAppAuthAuthorizationFlowManagerDelegate> authorizationFlowManagerDelegate;
@end
En el target princial de tu app has clic en la pestaña Info de Xcode y en URL Types / URL Scheme añade tu dominio
Recuerda que este módulo depende de react-native-app-auth para realizar la autenticación. Asegúrate de seguir la guía de instalación de react-native-app-auth para configurar la autenticación en iOS y Android.
Tipos
Roles
Este enum define los roles disponibles para los usuarios en la aplicación.
export declare enum RolesEnumType {
ADMIN = "Admin",
USER = "User",
RIDER = "Rider",
STORE = "Store",
SUPERADMIN = "SuperAdmin"
}
SUPERADMIN: Administrador con acceso total.
ADMIN: Administrador con acceso limitado.
USER: Usuario regular.
RIDER: Usuario tipo conductor.
STORE: Usuario tipo tienda.
ServiceConfiguration
Configuración de los endpoints para la autenticación.
interface ServiceConfiguration {
authorizationEndpoint: string;
tokenEndpoint: string;
revocationEndpoint: string;
}
authorizationEndpoint: Endpoint para autorizar la aplicación.
tokenEndpoint: Endpoint para obtener el token de acceso.
revocationEndpoint: Endpoint para revocar el token.
AdditionalParameters
Parámetros adicionales específicos de la plataforma.
interface AdditionalParameters {
platform: string;
language: string;
data: any;
}
platform: Plataforma en la que se ejecuta la app (por ejemplo, "iOS", "Android").
language: Idioma preferido del usuario.
data: Datos adicionales que puedan ser necesarios para la autenticación.
WilbbyAuthProviderType
Interfaz que agrupa toda la configuración necesaria para autenticar al usuario.
export interface WilbbyAuthProviderType {
serviceConfiguration: ServiceConfiguration;
additionalParameters: AdditionalParameters;
clientId: string;
redirectUrl: string;
scopes: Roles[];
}
serviceConfiguration: Configuración de los servicios de autenticación.
additionalParameters: Parámetros adicionales como plataforma e idioma.
clientId: El ID del cliente para la autenticación.
redirectUrl: URL de redirección después de la autenticación.
scopes: Los roles que la aplicación solicita para el acceso.
WilbbyAuth
Clase principal para gestionar la autenticación.
Método authenticate
Este método maneja el flujo de autenticación utilizando los parámetros proporcionados.
Parámetros:
config: Objeto de tipo WilbbyAuthProviderType con la configuración de la autenticación.
Retorna:
Una promesa que se resuelve con el resultado de la autenticación (AuthorizeResult).
Ejemplo de uso:
import {WilbbyAuth, WilbbyAuthProviderType, RolesEnumType } from 'react-native-wilbby-auth';
const config = {
serviceConfiguration: {
authorizationEndpoint: 'https://auth.example.com/oauth/authorize',
tokenEndpoint: 'https://auth.example.com/oauth/token',
revocationEndpoint: 'https://auth.example.com/oauth/revoke',
},
additionalParameters: {
platform: 'iOS',
language: 'en',
data: {},
},
clientId: 'your-client-id',
redirectUrl: 'com.example.app://oauth/callback',
scopes: [Roles.USER, Roles.RIDER],
};
try {
const result = await WilbbyAuth.authenticate(config);
console.log('Authentication successful:', result);
} catch (error) {
console.error('Authentication failed:', error);
}
Requisitos
Este módulo depende de la biblioteca react-native-app-auth para manejar la autenticación. Asegúrate de seguir la guía de instalación de react-native-app-auth para configurar correctamente la plataforma en iOS y Android.
Contribuciones
Si deseas contribuir a react-native-wilbby-auth, haz un fork del repositorio y crea un pull request con tus cambios. Asegúrate de seguir las guías de estilo y de probar cualquier nueva funcionalidad antes de enviar el PR.
Licencia
Este paquete está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.