sso-client v2.0.1
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