106 lines
2.7 KiB
JavaScript
106 lines
2.7 KiB
JavaScript
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){
|
||
|
||
const _this = this
|
||
wx.login({
|
||
success: function (res) {
|
||
// 必须是在用户已经授权的情况下调用
|
||
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) {
|
||
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()
|
||
}
|
||
})
|
||
}
|
||
})
|
||
|
||
|
||
}
|
||
})
|
||
}
|
||
|
||
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
|
||
} |