This commit is contained in:
2018-11-07 23:02:32 +00:00
parent dc258852ce
commit d99fe5677b
5 changed files with 408 additions and 47 deletions

View File

@@ -1,6 +1,8 @@
/* eslint-disable */
import decode from "jwt-decode";
import config from "./config";
import logger from "./logit";
//import axios from 'axios';
//import auth0 from 'auth0-js';
//import Router from 'vue-router';
@@ -42,8 +44,8 @@ const AuthorizationRoles = {
OpsAdminFull: 16384
}; //end AuthorizationRoles
const ID_TOKEN_KEY = "id_token";
const ACCESS_TOKEN_KEY = "access_token";
const TOKEN_KEY = "apitoken";
const USER_ROLES = AuthorizationRoles.NoRole;
// const CLIENT_ID = '{AUTH0_CLIENT_ID}';
@@ -58,17 +60,28 @@ const USER_ROLES = AuthorizationRoles.NoRole;
// });
export function processLogin(response) {
if (response) {
debugger;
//validate token (ensure it's *our* token at least, the server will do the real validation on requests)
//response.data.token
//store token in central store
//todo: put token into localstorage later once this validation is worked out
logger.log("auth::processLogin called");
//is token present?
if (!response || !response.data || !response.data.token) {
logger.log("auth::processLogin -> token empty");
return Promise.resolve(false);
}
const token = decode(response.data.token);
if (!token || !token.iss || token.iss != "ayanova.com") {
logger.log("auth::processLogin -> token empty or invalid ");
return Promise.resolve(false);
}
//debugger;
config.apiToken = response.data.token;
config.userId = Number(token.id);
config.roles = token["ayanova/roles"];
return Promise.resolve(true);
// auth.authorize({
// responseType: 'token id_token',
// redirectUri: REDIRECT,
// audience: AUDIENCE,
// scope: SCOPE
// });
}
// var router = new Router({
@@ -76,9 +89,8 @@ export function processLogin(response) {
// });
export function processLogout() {
console.log("util\\auth.js->ProcessLogout called!");
clearIdToken();
clearAccessToken();
logger.log("util\\auth.js->ProcessLogout called!");
clearToken();
//router.go('/');
}
@@ -94,42 +106,27 @@ export function processLogout() {
// }
export function getIdToken() {
return localStorage.getItem(ID_TOKEN_KEY);
return localStorage.getItem(TOKEN_KEY);
}
export function getAccessToken() {
return localStorage.getItem(ACCESS_TOKEN_KEY);
function clearToken() {
localStorage.removeItem(TOKEN_KEY);
}
function clearIdToken() {
localStorage.removeItem(ID_TOKEN_KEY);
}
function clearAccessToken() {
localStorage.removeItem(ACCESS_TOKEN_KEY);
}
// Helper function that will allow us to extract the access_token and id_token
function getParameterByName(name) {
let match = RegExp("[#&]" + name + "=([^&]*)").exec(window.location.hash);
return match && decodeURIComponent(match[1].replace(/\+/g, " "));
}
// Get and store access_token in local storage
export function setAccessToken() {
let accessToken = getParameterByName("access_token");
localStorage.setItem(ACCESS_TOKEN_KEY, accessToken);
}
// // Helper function that will allow us to extract the access_token and id_token
// function getParameterByName(name) {
// let match = RegExp("[#&]" + name + "=([^&]*)").exec(window.location.hash);
// return match && decodeURIComponent(match[1].replace(/\+/g, " "));
// }
// Get and store id_token in local storage
export function setIdToken() {
let idToken = getParameterByName("id_token");
localStorage.setItem(ID_TOKEN_KEY, idToken);
export function setToken(token) {
localStorage.setItem(TOKEN_KEY, token);
}
export function isLoggedIn() {
const idToken = getIdToken();
return !!idToken && !isTokenExpired(idToken);
const token = getToken();
return !!token && !isTokenExpired(token);
}
function getTokenExpirationDate(encodedToken) {