mirror of
https://gitee.com/java110/WechatOwnerService.git
synced 2026-02-23 21:36:38 +08:00
219 lines
4.4 KiB
JavaScript
219 lines
4.4 KiB
JavaScript
import {
|
|
saveOwnerStorage,
|
|
saveUserLoginInfo,
|
|
getWAppId,
|
|
saveWAppId,
|
|
getLoginFlag,
|
|
saveOpenId
|
|
} from '../utils/StorageUtil.js'
|
|
|
|
import {
|
|
showInfo
|
|
} from '../utils/CoreUtil.js'
|
|
|
|
import url from '../../../constant/url.js'
|
|
|
|
import {
|
|
requestNoAuth
|
|
} from '../java110Request.js'
|
|
|
|
export function pageOnLoad(options) {
|
|
getPageWAppId();
|
|
doPageCheckSession('',function(){},'1');
|
|
}
|
|
|
|
/**
|
|
* 获取WAppId
|
|
*/
|
|
export function getPageWAppId() {
|
|
let wAppId = null;
|
|
|
|
let accountInfo = uni.getAccountInfoSync();
|
|
wAppId = accountInfo.miniProgram.appId;
|
|
|
|
saveWAppId(wAppId)
|
|
return wAppId;
|
|
}
|
|
|
|
/**
|
|
* 页面 session
|
|
* @param {Object} _call 回调函数
|
|
*/
|
|
export function doPageCheckSession(_pageUrl,_call,_needLogin) {
|
|
let loginFlag = getLoginFlag();
|
|
let nowDate = new Date();
|
|
if (loginFlag && loginFlag.expireTime > nowDate.getTime()) {
|
|
// 检查 session_key 是否过期
|
|
wx.checkSession({
|
|
// session_key 有效(为过期)
|
|
success: function() {
|
|
_call();
|
|
},
|
|
// session_key 过期
|
|
fail: function() {
|
|
// session_key过期
|
|
doLogin(_call,_needLogin);
|
|
}
|
|
});
|
|
} else {
|
|
// 无登录态
|
|
doLogin(_call,_needLogin);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 页面 session
|
|
* @param {Object} _call 回调函数
|
|
*/
|
|
export function pageCheckSession(_pageUrl,_call) {
|
|
doPageCheckSession(_pageUrl,_call,'0')
|
|
}
|
|
|
|
/**
|
|
* 登录
|
|
*/
|
|
export function doLogin(callback = () => {},_needLogin) {
|
|
|
|
wx.login({
|
|
success: function(loginRes) {
|
|
if (loginRes.code) {
|
|
// TODO
|
|
//请求服务后端登录
|
|
requsetHcServerToLogin(loginRes, callback,_needLogin);
|
|
} else {
|
|
// 获取 code 失败
|
|
console.log('调用wx.login获取code失败');
|
|
}
|
|
},
|
|
fail: function(error) {
|
|
// 调用 wx.login 接口失败
|
|
console.log('调用wx.login获取code失败');
|
|
console.log(error);
|
|
}
|
|
});
|
|
}
|
|
/**
|
|
* 尝试服务器登录
|
|
* 如果登录不成功 跳转登录页面
|
|
*/
|
|
export function requsetHcServerToLogin(loginRes, callback = () => {},_needLogin) {
|
|
let defaultRawData =
|
|
'{"nickName":"","gender":1,"language":"","city":"","province":"","country":"","avatarUrl":""}'; // 请求服务端的登录接口
|
|
console.log('返回信息', loginRes);
|
|
let _appId = '';
|
|
_appId = getWAppId();
|
|
requestNoAuth({
|
|
url: url.loginUrl,
|
|
method: 'post',
|
|
data: {
|
|
code: loginRes.code,
|
|
// 临时登录凭证
|
|
userInfo: JSON.parse(defaultRawData),
|
|
// 用户非敏感信息
|
|
signature: '',
|
|
// 签名
|
|
encryptedData: '',
|
|
// 用户敏感信息
|
|
iv: '', // 解密算法的向量
|
|
appId: _appId
|
|
|
|
},
|
|
success: function(res) {
|
|
if (res.statusCode == '401' && _needLogin != '1') {
|
|
let data = res.data;
|
|
saveOpenId(data.openId);
|
|
wx.reLaunch({
|
|
url: '/pages/login/showlogin?wAppId=' + _appId
|
|
});
|
|
return;
|
|
}
|
|
res = res.data;
|
|
if (res.result == 0) {
|
|
saveOwnerStorage(res.userInfo);
|
|
saveUserLoginInfo(res.userInfo.userId, res.token)
|
|
callback();
|
|
} else {
|
|
if( _needLogin != '1'){
|
|
wx.reLaunch({
|
|
url: '/pages/login/showlogin?wAppId=' + _appId
|
|
});
|
|
}
|
|
return;
|
|
}
|
|
},
|
|
fail: function(error) {
|
|
// 调用服务端登录接口失败
|
|
if (error.statusCode == 401) {
|
|
uni.reLaunch({
|
|
url: '/pages/login/login?wAppId=' + _appId
|
|
});
|
|
return;
|
|
}
|
|
console.log(error);
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 查询活动列表
|
|
*/
|
|
export function pageUserLogin(_obj) {
|
|
uni.showLoading({
|
|
title: '加载中',
|
|
mask: true
|
|
});
|
|
return new Promise(
|
|
(resolve, reject) => {
|
|
requestNoAuth({
|
|
url: url.loginOwnerUrl,
|
|
method: "POST",
|
|
data: JSON.stringify(_obj),
|
|
//动态数据
|
|
success: function(res) {
|
|
uni.hideLoading();
|
|
console.log("登录返回信息", res);
|
|
if (res.statusCode != 200) {
|
|
uni.showToast({
|
|
icon: 'none',
|
|
title: res.data
|
|
});
|
|
reject();
|
|
return;
|
|
}
|
|
let _data = res.data;
|
|
let _ownerInfo = _data.owner;
|
|
saveOwnerStorage(_ownerInfo);
|
|
saveUserLoginInfo(_ownerInfo.userId, _data.token, _data.key)
|
|
resolve();
|
|
},
|
|
fail: function(e) {
|
|
uni.hideLoading();
|
|
reject();
|
|
}
|
|
});
|
|
})
|
|
}
|
|
|
|
/**
|
|
* @param {Object} options 页面数据
|
|
*/
|
|
export function getPageLoginCode(options) {
|
|
return new Promise((resolve, reject) => {
|
|
wx.login({
|
|
success: function(loginRes) {
|
|
if (loginRes.code) {
|
|
resolve(loginRes.code);
|
|
} else {
|
|
// 获取 code 失败
|
|
showInfo('微信登录失败');
|
|
}
|
|
},
|
|
fail: function(error) {
|
|
// 调用 wx.login 接口失败
|
|
showInfo('微信登录失败');
|
|
}
|
|
});
|
|
|
|
});
|
|
}
|