39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
const { request } = require('./request');
|
|
|
|
function loginWithWeChat(userProfile) {
|
|
return new Promise((resolve, reject) => {
|
|
wx.login({
|
|
success: async (res) => {
|
|
const code = res.code;
|
|
if (!code) {
|
|
reject(new Error('获取登录码失败'));
|
|
return;
|
|
}
|
|
const payload = {
|
|
code,
|
|
nickname: userProfile ? userProfile.nickName : '',
|
|
avatar_url: userProfile ? userProfile.avatarUrl : ''
|
|
};
|
|
try {
|
|
const result = await request({
|
|
url: '/api/auth/wechat_login',
|
|
method: 'POST',
|
|
data: payload
|
|
});
|
|
if (result && result.success && result.data && result.data.token) {
|
|
wx.setStorageSync('token', result.data.token);
|
|
resolve(result.data);
|
|
return;
|
|
}
|
|
reject(new Error(result.message || '登录失败'));
|
|
} catch (err) {
|
|
reject(err);
|
|
}
|
|
},
|
|
fail: (err) => reject(err)
|
|
});
|
|
});
|
|
}
|
|
|
|
module.exports = { loginWithWeChat };
|