Commit 6bd5ec12 authored by Junling Bu's avatar Junling Bu
Browse files

登陆相关操作从util.js重构到user.js; 此外用户如果请求后台没有登陆时,则跳转到我的页面登陆。

parent c0fb0732
/**
* 用户相关服务
*/
const util = require('../utils/util.js');
const api = require('../config/api.js');
/**
* Promise封装wx.checkSession
*/
function checkSession() {
return new Promise(function (resolve, reject) {
wx.checkSession({
success: function () {
resolve(true);
},
fail: function () {
reject(false);
}
})
});
}
/**
* Promise封装wx.login
*/
function login() {
return new Promise(function (resolve, reject) {
wx.login({
success: function (res) {
if (res.code) {
resolve(res);
} else {
reject(res);
}
},
fail: function (err) {
reject(err);
}
});
});
}
/**
* Promise封装wx.getUserInfo
*/
function getUserInfo() {
return new Promise(function (resolve, reject) {
wx.getUserInfo({
withCredentials: true,
success: function (res) {
resolve(res);
},
fail: function (err) {
reject(err);
}
})
});
}
/**
* 调用微信登录
*/
......@@ -13,9 +65,9 @@ function loginByWeixin() {
let code = null;
return new Promise(function (resolve, reject) {
return util.login().then((res) => {
return login().then((res) => {
code = res.code;
return util.getUserInfo();
return getUserInfo();
}).then((userInfo) => {
//登录远程服务器
util.request(api.AuthLoginByWeixin, { code: code, userInfo: userInfo }, 'POST').then(res => {
......@@ -44,7 +96,7 @@ function checkLogin() {
return new Promise(function (resolve, reject) {
if (wx.getStorageSync('userInfo') && wx.getStorageSync('token')) {
util.checkSession().then(() => {
checkSession().then(() => {
resolve(true);
}).catch(() => {
reject(false);
......
......@@ -32,35 +32,14 @@ function request(url, data = {}, method = "GET") {
'X-Litemall-Token': wx.getStorageSync('token')
},
success: function (res) {
// console.log("success");
if (res.statusCode == 200) {
if (res.data.errno == 401) {
//需要登录后才可以操作
let code = null;
return login().then((res) => {
code = res.code;
return getUserInfo();
}).then((userInfo) => {
//登录远程服务器
request(api.AuthLoginByWeixin, { code: code, userInfo: userInfo }, 'POST').then(res => {
if (res.errno === 0) {
//存储用户信息
wx.setStorageSync('userInfo', res.data.userInfo);
wx.setStorageSync('token', res.data.token);
resolve(res);
} else {
reject(res);
}
}).catch((err) => {
reject(err);
});
}).catch((err) => {
reject(err);
})
wx.switchTab({
url: '/pages/ucenter/index/index'
});
} else {
resolve(res.data);
}
......@@ -71,60 +50,6 @@ function request(url, data = {}, method = "GET") {
},
fail: function (err) {
reject(err)
// console.log("failed")
}
})
});
}
/**
* 检查微信会话是否过期
*/
function checkSession() {
return new Promise(function (resolve, reject) {
wx.checkSession({
success: function () {
resolve(true);
},
fail: function () {
reject(false);
}
})
});
}
/**
* 调用微信登录
*/
function login() {
return new Promise(function (resolve, reject) {
wx.login({
success: function (res) {
if (res.code) {
//登录远程服务器
// console.log(res)
resolve(res);
} else {
reject(res);
}
},
fail: function (err) {
reject(err);
}
});
});
}
function getUserInfo() {
return new Promise(function (resolve, reject) {
wx.getUserInfo({
withCredentials: true,
success: function (res) {
// console.log(res)
resolve(res);
},
fail: function (err) {
reject(err);
}
})
});
......@@ -156,10 +81,7 @@ module.exports = {
formatTime,
request,
redirect,
showErrorToast,
checkSession,
login,
getUserInfo,
showErrorToast
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment