1.0.10 • Published 6 months ago

react-native-wilbby-auth v1.0.10

Weekly downloads
-
License
MIT
Repository
github
Last release
6 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

6 months ago

1.0.9

6 months ago

1.0.8

6 months ago

1.0.7

6 months ago

1.0.6

6 months ago

1.0.5

6 months ago

1.0.4

6 months ago

1.0.3

6 months ago

1.0.1

6 months ago

1.0.0

6 months ago