62 lines
1.4 KiB
JavaScript
62 lines
1.4 KiB
JavaScript
/**
|
||
* 认证接口模块
|
||
* Requirements: 1.1, 1.2, 1.3
|
||
*/
|
||
|
||
import { post } from './request'
|
||
import { setToken, setUserInfo } from '../utils/storage'
|
||
|
||
/**
|
||
* 微信登录
|
||
* WHEN a user opens the XiangYi_MiniApp for the first time,
|
||
* THE XiangYi_MiniApp SHALL call WeChat login API and obtain authorization code
|
||
* Requirements: 1.1, 1.2
|
||
*
|
||
* @param {string} code - 微信登录授权码
|
||
* @returns {Promise<Object>} 登录响应,包含token和用户信息
|
||
*/
|
||
export async function login(code) {
|
||
const response = await post('/auth/login', { code }, { needAuth: false })
|
||
|
||
// 存储token和用户信息
|
||
if (response.data) {
|
||
const { token, userId, nickname, avatar, xiangQinNo, isProfileCompleted, isMember, memberLevel, isRealName } = response.data
|
||
|
||
if (token) {
|
||
setToken(token)
|
||
}
|
||
|
||
setUserInfo({
|
||
userId,
|
||
nickname,
|
||
avatar,
|
||
xiangQinNo,
|
||
isProfileCompleted,
|
||
isMember,
|
||
memberLevel,
|
||
isRealName
|
||
})
|
||
}
|
||
|
||
return response
|
||
}
|
||
|
||
/**
|
||
* 绑定手机号
|
||
* WHEN a user needs to bind phone number,
|
||
* THE XiangYi_MiniApp SHALL use WeChat getPhoneNumber API and send the code to endpoint
|
||
* Requirements: 1.3
|
||
*
|
||
* @param {string} code - 微信获取手机号的code
|
||
* @returns {Promise<Object>} 绑定结果
|
||
*/
|
||
export async function bindPhone(code) {
|
||
const response = await post('/auth/bindPhone', { code })
|
||
return response
|
||
}
|
||
|
||
export default {
|
||
login,
|
||
bindPhone
|
||
}
|