sso-client

2.0.1 • Public • Published

SSO Client

Biblioteca javascript de consumo do SSO Server.

Para utilizar a biblioteca de SSO Client basta instanciar o objeto de SSO no boostrap da sua aplicação.

Por exemplo:

1. No boostrap da sua aplicação

import configuration from 'app.config.js'
window.SSO = new Sso(configuration.sso);

Criar um arquivo chamado app.config.js com as configurações do sso, conforme trecho abaixo.

app.config.js (Alterar os atributos cookieDomain e gatewayEndpointLogin e adicionar o GUID e SECRET da aplicação atual para os respectivos valores conforme ambiente)

export default {
  sso: {
    authentication: {
      consts: {
        token: 'HB-AUTH-TOKEN',
        // cookieDomain: 'ontimeambev.com.br',
        cookieDomain: 'localhost',
      },
      front: {
        //a cada 30 minutos
        timeToRenewToken: (1000 * 60 * 30),
        //a cada 43 minutos, foi multiplicado por 3.33 para não dar conflito com o tempo de renew
        inactiveTimeToLogout: (1000 * 60 * 13 * 3.33),
        // gatewayEndpointLogin: 'https://ontimeambev.com.br/app/login',
        gatewayEndpointLogin: 'http://localhost:3003/app/login',
      },
      api: {
        timeout: 10000,
        server: 'https://sso.ontimeambev.com.br',
        ssoEndpoint: 'api/authsso/login',
        basicEndpoint: 'api/authbasic/login',
        claimsEndpoint: 'api/token/getClaims',
        renewEndpoint: 'api/token/Renew',
        consumer: {
          guid: '',
          secret: ''
        }
      }
    }
  }
}

Para enviar o token para o seu backend, no interceptor da sua biblioteca de requisições, adicionar o token nos headers da requisição, exemplo do axios:

2. Axios

const storedToken = SSO.getTokenJwt()
 
if (storedToken != ""){
  config.headers = config.headers || {};
  config.headers["Content-type"] = "application/json"
  config.headers[SSO.settings.authentication.consts.token] = storedToken
}

3. Verificação de usuário autenticado (React)

app.js

async componentWillMount () {
    const token = await SSO.getTokenJwt()
    
    if (!token || Object.keys(token).length == 0) {
      SSO.logoutAndRedirectLoginWithReturnUrl()
    }
}

Funções disponíveis no SSO Client:

Limpa dos cookies de autenticação

clearCookies(returnURL) : void

Retorna um objeto com as claims do usuário

getClaimsAsync() : Promise

Retorna a string do token de autenticação

getTokenJwt(returnURL) : string

Retorna o objeto de autenticação

getTokenObject(returnURL) : object 

Retorna o nome do usuário

getUserName(returnURL) : string 

Retorna as aplicações que o usuário tem acesso

getUserApps(returnURL) : array

Login automático por NTLM (Windows Autentication).

loginAsync() : Promise 

Login com as credenciais (usuario e senha)

loginWithCredentialsAsync() : Promise

Faz o logout, limpa os dados de autenticação

logout(callback) : void

Faz o logout e redireciona para a tela de login, possibilitando passar uma url de retorno, caso contrario ele pega a URL de origem do logout para redirecionar devoltar

logoutAndRedirectLoginWithReturnUrl(returnURL) : void

Faz a requisição de uma renovação de token

renewTokenAsync() : Promise

Seta um token no cookie

setToken(returnURL) : void

Readme

Keywords

none

Package Sidebar

Install

npm i sso-client

Weekly Downloads

0

Version

2.0.1

License

ISC

Last publish

Collaborators

  • procurementhbsis