add local storage of token and services
This commit is contained in:
+10
@@ -3,10 +3,20 @@ import { useLaunch } from '@tarojs/taro';
|
||||
import 'taro-ui/dist/style/index.scss';
|
||||
import './app.scss';
|
||||
import { getLocaleData } from './service/localeData';
|
||||
import { checkLogin, checkToken } from './service/checkLogin';
|
||||
import wechatUser from './wechat';
|
||||
import { loginAte } from './service/login';
|
||||
import { memberInfo } from './service/memberInfo';
|
||||
|
||||
function App({ children }: PropsWithChildren<any>) {
|
||||
useLaunch(() => {
|
||||
console.log('App launched.');
|
||||
if (checkLogin()) {
|
||||
wechatUser.setToken(checkToken());
|
||||
memberInfo();
|
||||
} else {
|
||||
loginAte();
|
||||
}
|
||||
getLocaleData();
|
||||
});
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
import Taro from '@tarojs/taro';
|
||||
import { getUrl } from '.';
|
||||
|
||||
export function checkLogin(): boolean {
|
||||
let token = checkToken();
|
||||
if (token.length !== 0) {
|
||||
Taro.request({
|
||||
url: getUrl('/checklogin'),
|
||||
method: 'GET',
|
||||
data: {
|
||||
token: token,
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.data.data.islogin) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
export function checkToken(): string {
|
||||
try {
|
||||
let token: string = Taro.getStorageSync('token');
|
||||
if (token) {
|
||||
return token;
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
return '';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import Taro from '@tarojs/taro';
|
||||
import wechatUser from '@/wechat';
|
||||
import { getUrl } from '.';
|
||||
|
||||
export function loginAte() {
|
||||
Taro.login({
|
||||
success: function (res) {
|
||||
if (res.code) {
|
||||
Taro.request({
|
||||
url: getUrl('/login'),
|
||||
method: 'POST',
|
||||
data: {
|
||||
code: res.code,
|
||||
},
|
||||
})
|
||||
.then((re) => {
|
||||
const data = re.data.data;
|
||||
Taro.setStorage({
|
||||
key: 'token',
|
||||
data: data.token,
|
||||
});
|
||||
wechatUser.setToken(data.token);
|
||||
wechatUser.setAccess(data.isMember);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
} else {
|
||||
console.log('登陆失败' + res.errMsg);
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
import Taro from '@tarojs/taro';
|
||||
import wechatUser, { UserInfo } from '@/wechat';
|
||||
import { getUrl } from '.';
|
||||
|
||||
export function memberInfo() {
|
||||
Taro.request({
|
||||
url: getUrl('/member/login'),
|
||||
method: 'POST',
|
||||
data: {
|
||||
token: wechatUser.getToken(),
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.data.success) {
|
||||
wechatUser.setInfo(res.data.data as UserInfo);
|
||||
wechatUser.setAccess(true);
|
||||
Taro.reLaunch({
|
||||
url: '/pages/member/member',
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
@@ -7,6 +7,7 @@ export interface UserInfo {
|
||||
class WechatUser {
|
||||
private userInfo: UserInfo;
|
||||
private isMember: boolean;
|
||||
private token: string;
|
||||
|
||||
constructor() {
|
||||
this.userInfo = {
|
||||
@@ -26,6 +27,10 @@ class WechatUser {
|
||||
return this.userInfo;
|
||||
}
|
||||
|
||||
getToken() {
|
||||
return this.token;
|
||||
}
|
||||
|
||||
setInfo(userInfo: UserInfo) {
|
||||
this.userInfo = userInfo;
|
||||
}
|
||||
@@ -33,6 +38,10 @@ class WechatUser {
|
||||
setAccess(isMember: boolean) {
|
||||
this.isMember = isMember;
|
||||
}
|
||||
|
||||
setToken(token: string) {
|
||||
this.token = token;
|
||||
}
|
||||
}
|
||||
|
||||
const wechatUser = new WechatUser();
|
||||
|
||||
Reference in New Issue
Block a user