npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@antonio-tomas/libreria-seguridad-okta-test

v1.1.9

Published

Libreria para el consumo de apis desde los microfrontends de Red Unica

Downloads

513

Readme

Libreria Seguridad Okta-Test-React

Implementacion de cliente para proteger las rutas de tu aplicacion SAC con OKTA.

Instalación

Ejecuta el siguiente script en tu microfront React

npm install @antonio-tomas/libreria-seguridad-okta-test

Uso

Para proteger la aplicacion, es necesario realizar dos pasos.

Paso 1: Configurar el punto de entrada del SAC

Despues de que se inicio la sesion en OKTA, este regresa la informacion a el microservicio que ejecuto el entrypoint (Pagina de Inicio de Sesion de Okta)

Posteriormente, ese microservicio crea el JWT y lo envia a el SAC.

El SAC necesita una ruta que sea el punto de entrada que reciba el JWT y lo guarde en el Session Storage y esa es la finalidad de este componente.

Si ya se tiene un componente similar que este almacenando el JWT, unicamente es necesario colocar el item del Session Storage en la variable de entorno correspondiente.

Para crear ese punto de entrada es necesario realizar lo siguiente:

  • Importar el componente ManageRedirect, en el archivo de rutas, solo es necesario declararlo una vez en el Single SPA.
    import { ManageRedirectPage } from '@antonio-tomas/libreria-seguridad-okta-test';
  • Declarar un componente Route en donde el path servira como punto de entrada del SAC, ese path debe estar configurado en el micro servicio.
    <Switch>
      <Route exact path={'/manage-redirect'} component={ManageRedirectPage} />
    </Switch>

Despues de implementar el componente anterior, ya se almacenara correctamente el JWT.

Importante

Este componente permite ingresar a la ruta solicitada despues de iniciar sesion, en caso de la sesion anterior no sea valida

Ejemplo de comportamiento:

  • Se solicito la ruta /sac/comercio/paso1.
  • En caso de que la sesion no sea valida, se redirige al login.
  • Despues de iniciar sesion nuevamente, me mostrara la ruta /sac/comercio/paso1.

Este comporamiento es para mostrar la ruta solicitada y no redirigir siempre a la ruta de inicio despues de iniciar sesion.

Paso 2: Proteger cada una de las rutas

Para este componente, unicamente es necesario que el JWT ya se maneje correctamente en el session storage, por que se utiliza para la validación y al no ser valido o no existir, se redirige al login.

Importar el componente ProtectedRoute en el archivo en donde se encuentran las rutas del proyecto.

import { ProtectedRoute } from '@antonio-tomas/libreria-seguridad-okta-test';

Despues de importar el componente, sustituir el Route por ProtectedRoute en cada ruta.

/* Rutas desprotegidas */
<Switch>
    <Route exact path={'/comercio'}
        render={() => <InicioComponente
        />}
    />
    <Route exact path={'/comercio/paso1'} component={Paso1Componente} />
</Switch>
/* Rutas protegidas */
<Switch>
    <ProtectedRoute exact path={'/comercio'}
        render={() => <InicioComponente
        />}
    />
    <ProtectedRoute exact path={'/comercio/paso1'} component={Paso1Componente} />
</Switch>

Es importante que el nombre del componente se mantenga como ProtectedRoute

Variables de entorno

// Ruta del Login del SAC
REACT_APP_AUTH_WITH_OKTA_PATH_LOGIN_SAC

// Nombre del item de session storage donde se guarda la url solicitada
REACT_APP_AUTH_WITH_OKTA_PATH_NAME_URL 

// Nombre del item de session storage donde se guarda el JWT
REACT_APP_AUTH_WITH_OKTA_JWT_NAME 

// Url para validar el JWT
REACT_APP_AUTH_WITH_OKTA_URL_TO_VALIDATE_JWT 

// Ruta de la pagina de Inicio del SAC 
REACT_APP_AUTH_WITH_OKTA_PATH_DASHBOARD_SAC 

// Param recibido del servidor que proporciona el token
REACT_APP_AUTH_WITH_OKTA_TOKEN_PARAM 

// Headers para la peticion que valida el JWT
REACT_APP_AUTH_WITH_OKTA_HEADERS_TO_AUTHORIZATION

Ejemplo de uso

REACT_APP_AUTH_WITH_OKTA_PATH_LOGIN_SAC=/login
REACT_APP_AUTH_WITH_OKTA_PATH_NAME_URL=url
REACT_APP_AUTH_WITH_OKTA_JWT_NAME=tokenJSW
REACT_APP_AUTH_WITH_OKTA_URL_TO_VALIDATE_JWT=http://localhost:1337/is-valid-session
REACT_APP_AUTH_WITH_OKTA_PATH_DASHBOARD_SAC=/
REACT_APP_AUTH_WITH_OKTA_TOKEN_PARAM=token
REACT_APP_AUTH_WITH_OKTA_HEADERS_TO_AUTHORIZATION="{'x-auth': 'YIP6W9Uv','x-gen': 'SMC'}"

Licence

ISC ©