5554-renovar_token #1566
|
@ -2,6 +2,10 @@ module.exports = Self => {
|
|||
Self.remoteMethodCtx('renewToken', {
|
||||
description: 'Send email to the user',
|
||||
accepts: [],
|
||||
returns: {
|
||||
type: 'Object',
|
||||
root: true
|
||||
},
|
||||
http: {
|
||||
path: `/renewToken`,
|
||||
verb: 'POST'
|
||||
|
@ -12,7 +16,7 @@ module.exports = Self => {
|
|||
const models = Self.app.models;
|
||||
const userId = ctx.req.accessToken.userId;
|
||||
const created = ctx.req.accessToken.created;
|
||||
// const tokenId = ctx.req.accessToken.id;
|
||||
const tokenId = ctx.req.accessToken.id;
|
||||
|
||||
const now = new Date();
|
||||
const differenceMilliseconds = now - created;
|
||||
|
@ -29,10 +33,8 @@ module.exports = Self => {
|
|||
return response;
|
||||
vicent marked this conversation as resolved
Outdated
|
||||
}
|
||||
|
||||
await models.AccessToken.destroyAll({userId: userId});
|
||||
// await models.AccessToken.destroyById(tokenId);
|
||||
|
||||
const accessToken = await models.AccessToken.create({userId: userId});
|
||||
await models.AccessToken.destroyById(tokenId);
|
||||
|
||||
return {token: accessToken.id, created: accessToken.created};
|
||||
};
|
||||
|
|
|
@ -30,11 +30,8 @@ export default class Auth {
|
|||
}
|
||||
};
|
||||
this.$transitions.onStart(criteria, transition => {
|
||||
this.getAccessTokenConfig();
|
||||
if (this.loggedIn) {
|
||||
console.log('firstIf');
|
||||
if (this.loggedIn)
|
||||
return true;
|
||||
}
|
||||
|
||||
let redirectToLogin = () => {
|
||||
return transition.router.stateService.target('login', {
|
||||
|
@ -43,43 +40,14 @@ export default class Auth {
|
|||
};
|
||||
|
||||
if (this.vnToken.token) {
|
||||
console.log('secondIf');
|
||||
|
||||
return this.loadAcls()
|
||||
.then(() => true)
|
||||
.catch(redirectToLogin);
|
||||
} else {
|
||||
console.log('else');
|
||||
|
||||
} else
|
||||
return redirectToLogin();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
getAccessTokenConfig() {
|
||||
this.$http.get('AccessTokenConfigs/findOne').then(json => {
|
||||
window.localStorage.renewPeriod = json.data.renewPeriod;
|
||||
window.localStorage.renewInterval = json.data.renewInterval;
|
||||
|
||||
const intervalMilliseconds = json.data.renewInterval * 1000;
|
||||
setInterval(this.checkTokenValidity.bind(this), intervalMilliseconds);
|
||||
});
|
||||
}
|
||||
|
||||
checkTokenValidity() {
|
||||
const now = new Date();
|
||||
const differenceMilliseconds = now - new Date(this.vnTokenCreated.created);
|
||||
const differenceSeconds = Math.floor(differenceMilliseconds / 1000);
|
||||
|
||||
console.log(differenceSeconds, window.localStorage.renewPeriod);
|
||||
if (differenceSeconds > window.localStorage.renewPeriod) {
|
||||
this.$http.post('VnUsers/renewToken')
|
||||
.then(() => {
|
||||
console.log('fin');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
login(user, password, remember) {
|
||||
if (!user) {
|
||||
let err = new UserError('Please enter your username');
|
||||
|
|
|
@ -3,13 +3,48 @@ import Component from 'core/lib/component';
|
|||
import './style.scss';
|
||||
|
||||
export class Layout extends Component {
|
||||
constructor($element, $, vnModules) {
|
||||
constructor($element, $, vnModules, vnToken, vnTokenCreated) {
|
||||
super($element, $);
|
||||
this.modules = vnModules.get();
|
||||
Object.assign(this, {
|
||||
vnToken,
|
||||
vnTokenCreated
|
||||
});
|
||||
}
|
||||
|
||||
$onInit() {
|
||||
this.getUserData();
|
||||
this.getAccessTokenConfig();
|
||||
}
|
||||
|
||||
getAccessTokenConfig() {
|
||||
this.$http.get('AccessTokenConfigs/findOne').then(json => {
|
||||
window.localStorage.renewPeriod = json.data.renewPeriod;
|
||||
window.localStorage.renewInterval = json.data.renewInterval;
|
||||
|
||||
const intervalMilliseconds = json.data.renewInterval * 1000;
|
||||
this.inservalId = setInterval(this.checkTokenValidity.bind(this), intervalMilliseconds);
|
||||
});
|
||||
}
|
||||
|
||||
checkTokenValidity() {
|
||||
const now = new Date();
|
||||
const differenceMilliseconds = now - new Date(this.vnTokenCreated.created);
|
||||
const differenceSeconds = Math.floor(differenceMilliseconds / 1000);
|
||||
|
||||
if (differenceSeconds > window.localStorage.renewPeriod) {
|
||||
this.$http.post('VnUsers/renewToken')
|
||||
.then(json => {
|
||||
console.log('fin renewToken');
|
||||
if (json.data.token) {
|
||||
let remember = true;
|
||||
vicent marked this conversation as resolved
Outdated
juan
commented
No guardar No guardar `renewPeriod` y `renewInterval` en `localStorage`, guardarlos en `this`
|
||||
if (window.sessionStorage.vnToken) remember = false;
|
||||
|
||||
this.vnToken.set(json.data.token, remember);
|
||||
this.vnTokenCreated.set(json.data.created, remember);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
getUserData() {
|
||||
|
@ -30,8 +65,12 @@ export class Layout extends Component {
|
|||
refresh() {
|
||||
window.location.reload();
|
||||
}
|
||||
|
||||
$onDestroy() {
|
||||
clearInterval(this.inservalId);
|
||||
}
|
||||
}
|
||||
Layout.$inject = ['$element', '$scope', 'vnModules'];
|
||||
Layout.$inject = ['$element', '$scope', 'vnModules', 'vnToken', 'vnTokenCreated'];
|
||||
|
||||
ngModule.vnComponent('vnLayout', {
|
||||
template: require('./index.html'),
|
||||
|
|
Loading…
Reference in New Issue
Devolver un 'UserError' si todavía no se ha pasado el tiempo de renovación.