npm package: @naveteam/pandora-frontend
Description: Repositório para auxílio de autenticação no front-end
Author: Juliano Reis
Latest version: 1.0.4

![Pandora-front](https://i.imgur.com/POtyxGs.png)

[![NPM](https://img.shields.io/npm/v/@naveteam/pandora-frontend.svg)](https://www.npmjs.com/package/@naveteam/pandora-frontend)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](http://makeapullrequest.com)


# ❗️ Motivação

Pacote com facilitadores para o seu fluxo de autenticação no front-end.

# 🚀 Instalação

No Terminal, execute

```
yarn add @naveteam/pandora-frontend axios
// ou npm install @naveteam/pandora-frontend axios
```

# 💡 Utilização

**OAuth2:** Para utilizar o módulo oauth2, inicialize uma instancia da sua api da seguinte forma

```
import { OAuth2 } from '@naveteam/pandora-frontend'

const options = { api_url: process.env.API_URL }

const instance = OAuth2.createInstance(options)
```

O objeto de opções, pode receber os seguintes parâmetros:

| Parâmetro                |  Valor padrão  |                                                                         Descrição |
| :----------------------- | :------------: | --------------------------------------------------------------------------------: |
| api_url                  |       -        |                                                URL base da api que será utilizada |
| access_token_name        | @access_token  |        Nome da `key` no local storage que vai armazenar o access_token do usuário |
| refresh_token_name       | @refresh_token |       Nome da `key` no local storage que vai armazenar o refresh_token do usuário |
| refreshTokenUrl          | /refresh-token | Endpoint da api que será usado para fazer a atualização do acces_token do usuário |
| requestInterceptorConfig |       -        |              Objeto que pode ser passado para o `interceptor` de todas `requests` |
| unauthenticatedPaths     |   ['/login']   |     Conjunto de `paths` que representam as rotas não autenticadas no client-side. |

# OAuth0

Para utilizar o módulo oauth0, inicialize uma instancia da sua api da seguinte forma

```
import { OAuth0 } from '@naveteam/pandora-frontend'

const options = { api_url: process.env.API_URL }

const instance = OAuth0.createInstance(options)
```

O objeto de opções, pode receber os seguintes parâmetros:

| Parâmetro                | Valor padrão |                                                                     Descrição |
| :----------------------- | :----------: | ----------------------------------------------------------------------------: |
| api_url                  |      -       |                                            URL base da api que será utilizada |
| token_name               |    @token    |           Nome da `key` no local storage que vai armazenar o token do usuário |
| requestInterceptorConfig |      -       |          Objeto que pode ser passado para o `interceptor` de todas `requests` |
| unauthenticatedPaths     |  ['/login']  | Conjunto de `paths` que representam as rotas não autenticadas no client-side. |


# ✨ Contribuidores
Obrigado a essas maravilhosas pessoas que contribuíram de alguma maneira para o desenvolvimento da lib ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
  <tr>
    <td align="center"><a href="https://github.com/eduardobittencourt"><img src="https://avatars1.githubusercontent.com/u/25224459?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Eduardo Bittencourt</b></sub></a><br /><a href="https://github.com/naveteam/pandora-frontend/commits?author=eduardobittencourt" title="Code">💻</a></td>
    <td align="center"><a href="https://github.com/dpnunez"><img src="https://avatars2.githubusercontent.com/u/46852072?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daniel Pôrto Nuñez</b></sub></a><br /><a href="https://github.com/naveteam/pandora-frontend/commits?author=dpnunez" title="Documentation">📖</a></td>
  </tr>
</table>

<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->

<!-- ALL-CONTRIBUTORS-LIST:END -->

Esse projeto segue a especificação de [all-contributors](https://github.com/all-contributors/all-contributors). Qualquer tipo de contribuição será bem-vinda!

## Licença

MIT © [Nave Team](https://github.com/naveteam)