1.0.10 • Published 10 months ago

react-native-wilbby-auth v1.0.10

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

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.
1.0.10

10 months ago

1.0.9

10 months ago

1.0.8

10 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago