调整文件结构;跑通admin端;初步设计页面结构
This commit is contained in:
@@ -646,6 +646,10 @@ export class AkSupa {
|
||||
this.user = null
|
||||
}
|
||||
async signIn(email : string, password : string) : Promise<AkSupaSignInResult> {
|
||||
// 提前检查 apikey 配置是否为占位符,避免发送无效请求导致 401
|
||||
if (this.apikey == null || this.apikey.trim() === '' || this.apikey === 'your-anon-key') {
|
||||
throw new Error('Supabase 配置错误:请在 ak/config.uts 中设置 SUPA_KEY(当前为占位符)');
|
||||
}
|
||||
const res = await AkReq.request({
|
||||
url: this.baseUrl + '/auth/v1/token?grant_type=password',
|
||||
method: 'POST',
|
||||
@@ -656,13 +660,31 @@ export class AkSupa {
|
||||
data: { email, password } as UTSJSONObject,
|
||||
contentType: 'application/json'
|
||||
}, false);
|
||||
//console.log(res)
|
||||
const data = new UTSJSONObject(res.data); // 修正:确保data为UTSJSONObject
|
||||
// 如果响应不是 2xx(例如 401),提取后端错误信息并抛出,便于上层显示具体原因
|
||||
const status = res.status ?? 0;
|
||||
if (!(status >= 200 && status < 400)) {
|
||||
let msg = 'user.login.login_failed';
|
||||
try {
|
||||
if (res.data != null) {
|
||||
const obj = new UTSJSONObject(res.data);
|
||||
msg = obj.getString('message') ?? obj.getString('error') ?? obj.getString('msg') ?? obj.getString('description') ?? obj.getString('error_description') ?? msg;
|
||||
}
|
||||
} catch (e) {
|
||||
// ignore
|
||||
}
|
||||
throw new Error(msg);
|
||||
}
|
||||
// 解析成功的返回体
|
||||
let data: UTSJSONObject;
|
||||
try {
|
||||
data = new UTSJSONObject(res.data);
|
||||
} catch (e) {
|
||||
data = new UTSJSONObject({});
|
||||
}
|
||||
const access_token = data.getString('access_token') ?? '';
|
||||
const refresh_token = data.getString('refresh_token') ?? '';
|
||||
const expires_at = data.getNumber('expires_at') ?? 0;
|
||||
const user = data.getJSON('user');
|
||||
//console.log(user, data)
|
||||
AkReq.setToken(access_token, refresh_token, expires_at);
|
||||
const session : AkSupaSignInResult = {
|
||||
access_token: access_token,
|
||||
@@ -675,7 +697,6 @@ export class AkSupa {
|
||||
};
|
||||
this.session = session;
|
||||
this.user = user;
|
||||
//console.log(this.user)
|
||||
return session;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user