Files
blog-frontEnd/index/src/app/services/local-storage.service.ts
2020-05-15 20:46:02 +08:00

64 lines
1.4 KiB
TypeScript

import {Injectable} from '@angular/core';
import {User} from '../class/User';
@Injectable({
providedIn: 'root'
})
export class LocalStorageService {
constructor() {
}
// 30s
readonly place = 30 * 1000;
getToken(): string {
return localStorage.getItem('token');
}
setToken(token: string) {
localStorage.setItem('t', new Date().valueOf().toString());
localStorage.setItem('token', token);
}
removeToken() {
localStorage.removeItem('token');
}
isLogin() {
return this.getToken() != null;
}
setUser(user: User) {
// TODO: 简单加个密
localStorage.setItem('t', new Date().valueOf().toString());
return localStorage.setItem('user', JSON.stringify(user));
}
getUser(): User {
if (!this.checkNeedNet()) {
return JSON.parse(localStorage.getItem('user'));
}
}
removeUser() {
return localStorage.removeItem('user');
}
clear() {
localStorage.removeItem('token');
localStorage.removeItem('user');
return localStorage.removeItem('t');
}
checkNeedNet() {
const t: number = Number.parseInt(localStorage.getItem('t'), 10);
if (isNaN(t) || new Date().valueOf() - t > this.place) {
localStorage.removeItem('t');
localStorage.removeItem('user');
return true;
}
return false;
}
}