function loadProfile() { var retorno = null; keycloak.loadUserProfile().success(function(profile) { retorno = profile; }).error(function() { retorno = ""; }); return retorno(); } function updateProfile() { var url = keycloak.createAccountUrl().split('?')[0]; var req = new XMLHttpRequest(); req.open('POST', url, true); req.setRequestHeader('Accept', 'application/json'); req.setRequestHeader('Content-Type', 'application/json'); req.setRequestHeader('Authorization', 'bearer ' + keycloak.token); req.onreadystatechange = function () { if (req.readyState == 4) { if (req.status == 200) { output('Success'); } else { output('Failed'); } } } req.send('{"email":"myemail@foo.bar","firstName":"test","lastName":"bar"}'); } function loadUserInfo() { keycloak.loadUserInfo().success(function(userInfo) { output(userInfo); }).error(function() { output('Failed to load user info'); }); } function refreshToken(minValidity) { keycloak.updateToken(minValidity).success(function(refreshed) { if (refreshed) { output(keycloak.tokenParsed); } else { output('Token not refreshed, valid for ' + Math.round(keycloak.tokenParsed.exp + keycloak.timeSkew - new Date().getTime() / 1000) + ' seconds'); } }).error(function() { output('Failed to refresh token'); }); } function showExpires() { if (!keycloak.tokenParsed) { output("Not authenticated"); return; } var o = 'Token Expires:\t\t' + new Date((keycloak.tokenParsed.exp + keycloak.timeSkew) * 1000).toLocaleString() + '\n'; o += 'Token Expires in:\t' + Math.round(keycloak.tokenParsed.exp + keycloak.timeSkew - new Date().getTime() / 1000) + ' seconds\n'; if (keycloak.refreshTokenParsed) { o += 'Refresh Token Expires:\t' + new Date((keycloak.refreshTokenParsed.exp + keycloak.timeSkew) * 1000).toLocaleString() + '\n'; o += 'Refresh Expires in:\t' + Math.round(keycloak.refreshTokenParsed.exp + keycloak.timeSkew - new Date().getTime() / 1000) + ' seconds'; } output(o); } function output(data) { if (typeof data === 'object') { data = JSON.stringify(data, null, ' '); } document.getElementById('output').innerHTML = data; } function event(event) { var e = document.getElementById('events').innerHTML; document.getElementById('events').innerHTML = new Date().toLocaleString() + "\t" + event + "\n" + e; } var keycloak = Keycloak(); keycloak.onAuthSuccess = function () { event('Auth Success'); }; keycloak.onAuthError = function (errorData) { event("Auth Error: " + JSON.stringify(errorData) ); }; keycloak.onAuthRefreshSuccess = function () { event('Auth Refresh Success'); }; keycloak.onAuthRefreshError = function () { event('Auth Refresh Error'); }; keycloak.onAuthLogout = function () { event('Auth Logout'); }; keycloak.onTokenExpired = function () { event('Access token expired.'); }; // Flow can be changed to 'implicit' or 'hybrid', but then client must enable implicit flow in admin console too var initOptions = { flow: 'implicit', promiseType: 'native', }; keycloak.init(initOptions).success(function(authenticated) { if (!authenticated){ keycloak.login(); }else{ var logoff = '<%=request.getParameter("logoff")%>'; if (logoff=="sim"){ try{ var TOKEN = "TOKEN-SEBRAE-GO" localStorage.removeItem(TOKEN); }catch(e){ console.log(e); } keycloak.logout(); }else{ keycloak.loadUserProfile().success(function(profile) { console.log("#####################"); console.log("#####################"); console.log(profile); console.log("#####################"); console.log("#####################"); if (profile.username){ var cpf = profile.username; var email = profile.email; var emailProfile = profile.email; //Se no email possui CPF então tentamos realizar o LOGIN a partir do CPF //Se não possuir, realizamos o login pela email if ((cpf!="")&&(cpf.indexOf("@")<=0)){ email = ""; } var data = { cpf:cpf, tipoVisualizacao:'123', senha:'123', redirectTo:'11', emailGmail: email, emailProfile: emailProfile } console.log("@@@@@@@@@@@@"); $.ajax({ dataType: 'json', contentType: 'application/json', url: '/ServicosSebrae/api/users/loginCPFAmei', type: 'POST', data:JSON.stringify(data), success: function(jsonRetorno) { console.log(jsonRetorno); console.log(jsonRetorno['x-access-token']); var routerService = new RouterService(); var token = jsonRetorno['x-access-token']; console.log(token); switch (token) { case 'USUARIO-NAO-CADASTRADO-SAS': //44220675086 keycloak.loadUserInfo().success(function(userInfo) { var cpf = userInfo.cpf; var nome = userInfo.name; var data_nascimento = userInfo.dataNascimento; var email = userInfo.email; if (typeof cpf == "undefined"){ routerService.navigate("/ServicosSebrae/cadastro.jsp?nome="+nome+"&redirectTo="+$("#redirectTo").val()+"&email="+email); }else{ routerService.navigate("/ServicosSebrae/cadastro.jsp?cpf="+cpf+"&nome="+nome+"&nascimento="+data_nascimento+"&redirectTo="+$("#redirectTo").val()+"&email="+email); } }).error(function() { output('Failed to load user info'); }); break case 'USUARIO-NAO-CADASTRADO-FLUIG': //44220675086 keycloak.loadUserInfo().success(function(userInfo) { var nome = userInfo.firstName; var email = userInfo.email; routerService.navigate("/ServicosSebrae/cadastro.jsp?nome="+nome+"&redirectTo="+$("#redirectTo").val()+"&email="+email); }).error(function() { output('Failed to load user info'); }); break case 'ERRO-SERVICO-SAS': //44220675086 keycloak.loadUserInfo().success(function(userInfo) { var nome = userInfo.name; var email = userInfo.email; routerService.navigate("/ServicosSebrae/cadastro.jsp?nome="+nome+"&redirectTo="+$("#redirectTo").val()+"&email="+email); }).error(function() { output('Failed to load user info'); }); break default: var tokenService = new TokenService(); tokenService.setToken(jsonRetorno['x-access-token']); var cpf = JSON.parse(new TokenService().getTokenDecoded().iss).cpf; routerService.navigate("/ServicosSebrae/Login?login="+cpf+"&senha=123&token="+jsonRetorno['x-access-token']+"&amei=true&acao=CADASTRAR_FICHA&redirectTo="+$("#redirectTo").val()+"&abreFormulario="+$("#abreFormulario").val()); break; } }, error: function(jq,status,message) { alert("Erro ao realizar login do usuário!"); } }) }else{ var routerService = new RouterService(); keycloak.loadUserInfo().success(function(userInfo) { var nome = userInfo.name; var email = userInfo.email; var cpf = userInfo.preferred_username; console.log(userInfo); routerService.navigate("/ServicosSebrae/cadastro.jsp?nome="+nome+"&email="+email+"&cpf="+cpf); }).error(function() { output('Failed to load user info'); }); } }).error(function(error) { console.log("Erro ao buscar dados do usuário" + error); }); } } }).error(function() { output('Init Error'); });