sju.login.js
4.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
/**
* 用户登录状态的相关封装
*/
import ajax from '@/common/sju.ajax.js';
import base from '@/common/sju.base.js';
import sjuNav from '@/common/sju.nav.js'
let login = {
/**
* @description 保存不需要登录的页面路径地址
* /intake/login 用户登录页面
* /intake/register 用户注册页面
* @param {数组}
*/
noLogin: ['/pages/login/login'],
/**
* @description 判断访问的Page是否需要登录
* 如果需要登录, 则判断是否已登录,未登录则跳转到登陆界面
* @param {string} url 打开的页面
*/
checkLogin: function(url) {
// 保存不需要登录的页面,如果pageUrl不在数组中存在,则需要登录
let needLogin = false;
for (let item of login.noLogin) {
if (item == url)
needLogin = false;
}
// 如果需要登录,并且没有登录token标识,则跳转到登陆页面
let token = login.getValue('token');
if (needLogin && base.isNull(token)) {
base.logInfo("需要登录:" + url);
//微信小程序,提供登录提醒
//#ifdef MP-WEIXIN
login.weixinInfo()
//#endif
//其它平台,直接跳转登录
//#ifdef APP-PLUS || H5
sjuNav.redirectTo('/intake/login');
//#endif
} else {
return true;
}
return false;
},
/**
* @description 微信小程序获取用户信息
*/
weixinInfo() {
var that = this
uni.hideLoading();
uni.getUserProfile({
desc: "用于个人中心信息展示",
lang: "zh_CN",
success: res => {
// var rawData = JSON.parse(res.rawData);
// login.weixinLogin(rawData.nickName, rawData.avatarUrl);
// console.log(res);
if (res.errMsg == 'getUserProfile:ok' && res.userInfo !=
undefined) {
var userInfo = {
avatarUrl: res.userInfo.avatarUrl,
nickName: res.userInfo.nickName,
iv: res.iv,
encryptedData: res.encryptedData
}
login.weixinLogin(userInfo);
} else {
uni.showToast({
icon: "none",
title: "获取失败,请重试"
})
}
},
fail: (res) => {
console.info('获取失败')
}
});
},
/**
* @description 微信小程序获取openID
* @param {string} nickName 微信用户名称
* @param {string} avatarUrl 用户用户头像
*/
weixinLogin(userInfo) {
uni.login({
provider: 'weixin',
scopes: 'auth_user',
success: function(loginRes) {
// 获取临时code
var code = loginRes.code;
// 请求后台接口获取openID
ajax.post('/api/Member.Member/miniWxLogin', {
code: code,
encryptedData: userInfo.encryptedData,
iv: userInfo.iv
}, data => {
console.log(data);
}, true)
ajax.post('/api/Member.Member/miniWxCodeRefreshToken', {
code: code
}, data => {
console.log(data);
// if (loginres.statusCode == 200) {
// let token = loginres.data.data.token
// uni.setStorageSync('token',data.token)
// uni.reLaunch({
// url: `/pages/profile/profile?headerUrl=${that.headerUrl}&nickName=${that.nickName}`
// });
// }
// 把后台返回的token保存到本地存储
// login.saveValue('token',data.token);
}, true)
// login.getPhone(userInfo, loginRes)
}
});
},
// 绑定手机号
getPhone(userInfo, loginRes) {
// console.log(userInfo, loginRes);
var code = loginRes.code;
ajax.post('/api/Member.Member/bindMobile', {
code: code,
encryptedData: userInfo.encryptedData,
iv: userInfo.iv
}, res => {
// console.log(res);
})
},
/**
* @description 本地存储
* @param {string} key 保存变量的标识
* @param {any} value 保存的值
*/
saveValue: function(key, value) {
uni.setStorageSync(key, value);
},
/**
* @description 从本地存储获取key数据
* @param {string} key 保存变量的标识
*/
getValue: function(key) {
let value = uni.getStorageSync(key);
return value;
},
/**
* @description 从本地存储清除某个key
* @param {string} key 保存变量的标识
*/
clearKey: function(key) {
uni.removeStorageSync(key);
},
/**
* @description 从本地存储清除所有数据
* @param {string} key 保存变量的标识
*/
clearAll: function(key) {
uni.clearStorageSync();
}
}
export default login;