timepill-app/src/util/token.js
xuwenyang df5a3cf98c 首次提交,备份,android未测试
1. 登录页重构
2. prepare.js工具自动遍历page目录,生成page/_list.js,用于Navigation注册自动化
2019-05-07 22:40:24 +08:00

104 lines
2.3 KiB
JavaScript

import AsyncStorage from '@react-native-community/async-storage';
var base64 = require('base-64');
class TokenManager {
generateToken(username, password) {
return 'Basic ' + base64.encode(username + ":" + password);
}
async set(key, value) {
await AsyncStorage.setItem(key, value);
}
async get(key) {
return await AsyncStorage.getItem(key);
}
async setUserToken(token) {
await this.set('user_token', token);
this.token = token;
}
async getUserToken() {
if (!this.token) {
this.token = await this.get('user_token');
}
return this.token;
}
async setUserInfo(user) {
await this.set('user_info', JSON.stringify(user));
this.user = user;
}
async getUserInfo() {
if (!this.user) {
this.user = JSON.parse(await this.get('user_info'));
}
return this.user;
}
async setLoginPassword(password) {
this.set('login_password', password);
}
async getLoginPassword() {
return await this.get('login_password');
}
async setUpdateVersion(version) {
this.set('update_version', JSON.stringify(version));
}
async getUpdateVersion() {
return JSON.parse(await this.get('update_version'));
}
async setDraft(content) {
this.set('draft', JSON.stringify(content));
}
async getDraft() {
return JSON.parse(await this.get('draft'));
}
async setTempDraft(content) {
this.set('temp_draft', JSON.stringify(content));
}
async getTempDraft() {
return JSON.parse(await this.get('temp_draft'));
}
async setSetting(name, value) {
let settings = await this.getSettings();
settings[name] = value;
this.set('setting', JSON.stringify(settings));
}
async getSetting(name) {
const settings = await this.getSettings();
return settings ? (settings[name]) : null;
}
async getSettings() {
let str = await this.get('setting');
let setting = str && str.length > 0 ? JSON.parse(str) : {};
if (settings['pushMessage'] === undefined) {
settings['pushMessage'] = true;
}
return settings;
}
}
export default new TokenManager()