@@ -27,6 +27,10 @@ export function request(method, path, data = {}, withAuth = false) {
|
||||
const d = res.data || {};
|
||||
if (res.statusCode >= 200 && res.statusCode < 300 && d.ok !== false) {
|
||||
resolve(d);
|
||||
} else if (res.statusCode === 401) {
|
||||
// 登录已失效(token 过期/被吊销/token_version 变更):清掉假登录态,引导重新登录
|
||||
Taro.removeStorageSync('pine_token');
|
||||
reject(new Error('登录已过期,请重新登录'));
|
||||
} else {
|
||||
reject(new Error(d.detail || d.error || '请求失败,请稍后重试'));
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import Taro from '@tarojs/taro';
|
||||
import { request } from './api';
|
||||
|
||||
/* 用户端认证(统一账号):登录/资料走平台 /auth(单一 users + 平台 JWT);
|
||||
手机绑定走培训 /api/auth(阶段3 后同样读写平台 users + 验平台 JWT)。
|
||||
/* 用户端认证(统一账号):登录/资料/手机绑定均走平台 /auth(单一 users + 平台 JWT)。
|
||||
与 web 端一致,见 小程序同步约束.md */
|
||||
|
||||
/** pine_user 契约字段(各页面读取):username/name/avatar/phone/phoneBound/status/topics/source */
|
||||
@@ -103,7 +102,7 @@ export async function bindPhone(phone, code) {
|
||||
const data = await request('POST', '/auth/bind-phone', { phone, code }, true);
|
||||
if (data.token) {
|
||||
Taro.setStorageSync('pine_token', data.token);
|
||||
Taro.setStorageSync('pine_user', JSON.stringify(pickUser(data)));
|
||||
saveUser(data); // pine_user 统一存对象(此前误存 JSON 字符串致资料页字段丢失)
|
||||
}
|
||||
return { ok: true, phone, phoneBound: true, ...data };
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 2.0 MiB |
Reference in New Issue
Block a user