|
|
@@ -1,4 +1,5 @@
|
|
|
import { usePost, stringify, useGet, usePut } from "@/.cool";
|
|
|
+import { config } from "@/config";
|
|
|
export type LoginData = {
|
|
|
access_token: string;
|
|
|
refresh_token: string;
|
|
|
@@ -43,12 +44,30 @@ export interface DICT_DATA {
|
|
|
export function loginApi(params) {
|
|
|
return usePost(`/oauth/token?${stringify(params)}`) as Promise<LoginData>
|
|
|
}
|
|
|
-export function refreshTokenApi(refreshToken: string) {
|
|
|
- return usePost(
|
|
|
- `/oauth/token?grant_type=refresh_token&refresh_token=${refreshToken}`,
|
|
|
- null,
|
|
|
- { header: { Authorization: 'Basic ZW5kOmVuZA==' } }
|
|
|
- ) as Promise<LoginData>
|
|
|
+export function refreshTokenApi(refreshToken: string): Promise<LoginData> {
|
|
|
+ // 绕过 request() 避免 header spread 导致 Authorization 被 user.token 污染
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ uni.request({
|
|
|
+ url: config.baseUrl + `/oauth/token?grant_type=refresh_token&refresh_token=${refreshToken}`,
|
|
|
+ method: 'POST',
|
|
|
+ header: { Authorization: 'Basic ZW5kOmVuZA==' },
|
|
|
+ success(res: any) {
|
|
|
+ // 小程序 uni.request 的 res.data 已是对象,无需 JSON.parse
|
|
|
+ console.log('[refreshTokenApi] statusCode:', res.statusCode)
|
|
|
+ console.log('[refreshTokenApi] data:', res.data)
|
|
|
+ const d = res.data as UTSJSONObject
|
|
|
+ if (d['code'] == 200 || d['code'] == 0) {
|
|
|
+ resolve(d['data'] as LoginData)
|
|
|
+ } else {
|
|
|
+ reject({ message: (d['message'] as string) ?? 'refresh failed' })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail(err: any) {
|
|
|
+ console.log('[refreshTokenApi] fail:', err)
|
|
|
+ reject({ message: err.errMsg ?? 'refresh network error' })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
}
|
|
|
export function sendSmsCode(params) {
|
|
|
return usePost(`/verify/sms/code/send`, params) as Promise<string>
|