Files

106 lines
2.7 KiB
JavaScript
Raw Permalink Normal View History

2020-11-17 18:52:15 +08:00
const WXAPI = require('apifm-wxapi')
// 检测登录状态,返回 true / false
async function checkHasLogined() {
const token = wx.getStorageSync('token')
if (!token) {
return false
}
wx.checkSession({
fail() {
return false
}
})
const checkTokenRes = await WXAPI.checkToken(token)
if (checkTokenRes.code != 0) {
wx.removeStorageSync('token')
return false
}
return true
}
async function login(page){
2020-11-20 14:06:42 +08:00
2020-11-17 18:52:15 +08:00
const _this = this
wx.login({
success: function (res) {
2020-11-20 14:06:42 +08:00
// 必须是在用户已经授权的情况下调用
let code = res.code; // 微信登录接口返回的 code 参数,下面注册接口需要用到
wx.getUserInfo({
success: function (res) {
var userInfo = res.userInfo
var nickName = userInfo.nickName
var avatarUrl = userInfo.avatarUrl
var gender = userInfo.gender //性别 0未知、1男、2
var province = userInfo.province
var city = userInfo.city
var country = userInfo.country
WXAPI.login_wx(res.code,nickName,avatarUrl,gender,province,city,country).then(function (res) {
2020-11-17 18:52:15 +08:00
if (res.code == 10000) {
// 去注册
//_this.register(page)
return;
}
if (res.code != 0) {
// 登录错误
wx.showModal({
title: '无法登录',
content: res.msg,
showCancel: false
})
return;
}
wx.setStorageSync('token', res.data.token)
wx.setStorageSync('uid', res.data.uid)
if ( page ) {
page.onShow()
}
})
2020-11-20 14:06:42 +08:00
}
})
2020-11-17 18:52:15 +08:00
}
})
}
async function register(page) {
let _this = this;
wx.login({
success: function (res) {
let code = res.code; // 微信登录接口返回的 code 参数,下面注册接口需要用到
wx.getUserInfo({
success: function (res) {
let iv = res.iv;
let encryptedData = res.encryptedData;
let referrer = '' // 推荐人
let referrer_storge = wx.getStorageSync('referrer');
if (referrer_storge) {
referrer = referrer_storge;
}
// 下面开始调用注册接口
WXAPI.register_complex({
code: code,
encryptedData: encryptedData,
iv: iv,
referrer: referrer
}).then(function (res) {
_this.login(page);
})
}
})
}
})
}
function loginOut(){
wx.removeStorageSync('token')
wx.removeStorageSync('uid')
}
module.exports = {
checkHasLogined: checkHasLogined,
login: login,
register: register,
loginOut: loginOut
}