|
@@ -219,171 +219,129 @@ export class CloudQuery {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// CloudUser.ts
|
|
|
// CloudUser.ts
|
|
|
export class CloudUser extends CloudObject {
|
|
|
- constructor() {
|
|
|
- super("_User"); // 假设用户类在Parse中是"_User"
|
|
|
- // 读取用户缓存信息
|
|
|
- let userCacheStr = localStorage.getItem("NCloud/dev/User")
|
|
|
- if(userCacheStr){
|
|
|
- let userData = JSON.parse(userCacheStr)
|
|
|
- // 设置用户信息
|
|
|
- this.id = userData?.objectId;
|
|
|
- this.sessionToken = userData?.sessionToken;
|
|
|
- this.data = userData; // 保存用户数据
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- sessionToken:string|null = ""
|
|
|
- /** 获取当前用户信息 */
|
|
|
- async current() {
|
|
|
- if (!this.sessionToken) {
|
|
|
- console.error("用户未登录");
|
|
|
- return null;
|
|
|
- }
|
|
|
- return this;
|
|
|
- // const response = await fetch(`http://dev.fmode.cn:1337/parse/users/me`, {
|
|
|
- // headers: {
|
|
|
- // "x-parse-application-id": "dev",
|
|
|
- // "x-parse-session-token": this.sessionToken // 使用sessionToken进行身份验证
|
|
|
- // },
|
|
|
- // method: "GET"
|
|
|
- // });
|
|
|
-
|
|
|
- // const result = await response?.json();
|
|
|
- // if (result?.error) {
|
|
|
- // console.error(result?.error);
|
|
|
- // return null;
|
|
|
- // }
|
|
|
- // return result;
|
|
|
- }
|
|
|
-
|
|
|
- /** 登录 */
|
|
|
- async login(username: string, password: string):Promise<CloudUser|null> {
|
|
|
- const response = await fetch(`http://dev.fmode.cn:1337/parse/login`, {
|
|
|
- headers: {
|
|
|
- "x-parse-application-id": "dev",
|
|
|
- "Content-Type": "application/json"
|
|
|
- },
|
|
|
- body: JSON.stringify({ username, password }),
|
|
|
- method: "POST"
|
|
|
- });
|
|
|
-
|
|
|
- const result = await response?.json();
|
|
|
- if (result?.error) {
|
|
|
- console.error(result?.error);
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- // 设置用户信息
|
|
|
- this.id = result?.objectId;
|
|
|
- this.sessionToken = result?.sessionToken;
|
|
|
- this.data = result; // 保存用户数据
|
|
|
- // 缓存用户信息
|
|
|
- console.log(result)
|
|
|
- localStorage.setItem("NCloud/dev/User",JSON.stringify(result))
|
|
|
- return this;
|
|
|
- }
|
|
|
-
|
|
|
- /** 登出 */
|
|
|
- async logout() {
|
|
|
- if (!this.sessionToken) {
|
|
|
- console.error("用户未登录");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- const response = await fetch(`http://dev.fmode.cn:1337/parse/logout`, {
|
|
|
- headers: {
|
|
|
- "x-parse-application-id": "dev",
|
|
|
- "x-parse-session-token": this.sessionToken
|
|
|
- },
|
|
|
- method: "POST"
|
|
|
- });
|
|
|
-
|
|
|
- const result = await response?.json();
|
|
|
- if (result?.error) {
|
|
|
- console.error(result?.error);
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- // 清除用户信息
|
|
|
- localStorage.removeItem("NCloud/dev/User")
|
|
|
- this.id = null;
|
|
|
- this.sessionToken = null;
|
|
|
- this.data = {};
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- /** 注册 */
|
|
|
- async signUp(username: string, password: string, additionalData: Record<string, any> = {}) {
|
|
|
- const userData = {
|
|
|
- username,
|
|
|
- password,
|
|
|
- ...additionalData // 合并额外的用户数据
|
|
|
- };
|
|
|
-
|
|
|
- const response = await fetch(`http://dev.fmode.cn:1337/parse/users`, {
|
|
|
- headers: {
|
|
|
- "x-parse-application-id": "dev",
|
|
|
- "Content-Type": "application/json"
|
|
|
- },
|
|
|
- body: JSON.stringify(userData),
|
|
|
- method: "POST"
|
|
|
- });
|
|
|
-
|
|
|
- const result = await response?.json();
|
|
|
- if (result?.error) {
|
|
|
- console.error(result?.error);
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- // 设置用户信息
|
|
|
- // 缓存用户信息
|
|
|
- console.log(result)
|
|
|
- localStorage.setItem("NCloud/dev/User",JSON.stringify(result))
|
|
|
- this.id = result?.objectId;
|
|
|
- this.sessionToken = result?.sessionToken;
|
|
|
- this.data = result; // 保存用户数据
|
|
|
- return this;
|
|
|
- }
|
|
|
-
|
|
|
- override async save() {
|
|
|
- let method = "POST";
|
|
|
- let url = `http://dev.fmode.cn:1337/parse/users`;
|
|
|
-
|
|
|
- // 更新用户信息
|
|
|
- if (this.id) {
|
|
|
- url += `/${this.id}`;
|
|
|
- method = "PUT";
|
|
|
- }
|
|
|
-
|
|
|
- let data:any = JSON.parse(JSON.stringify(this.data))
|
|
|
- delete data.createdAt
|
|
|
- delete data.updatedAt
|
|
|
- delete data.ACL
|
|
|
- delete data.objectId
|
|
|
- const body = JSON.stringify(data);
|
|
|
- let headersOptions:any = {
|
|
|
- "content-type": "application/json;charset=UTF-8",
|
|
|
- "x-parse-application-id": "dev",
|
|
|
- "x-parse-session-token": this.sessionToken, // 添加sessionToken以进行身份验证
|
|
|
- }
|
|
|
- const response = await fetch(url, {
|
|
|
- headers: headersOptions,
|
|
|
- body: body,
|
|
|
- method: method,
|
|
|
- mode: "cors",
|
|
|
- credentials: "omit"
|
|
|
- });
|
|
|
-
|
|
|
- const result = await response?.json();
|
|
|
- if (result?.error) {
|
|
|
- console.error(result?.error);
|
|
|
- }
|
|
|
- if (result?.objectId) {
|
|
|
- this.id = result?.objectId;
|
|
|
- }
|
|
|
- localStorage.setItem("NCloud/dev/User",JSON.stringify(this.data))
|
|
|
- return this;
|
|
|
- }
|
|
|
+ constructor() {
|
|
|
+ super("_User"); // 假设用户类在Parse中是"_User"
|
|
|
+ // 读取用户缓存信息
|
|
|
+ let userCacheStr = localStorage.getItem("NCloud/dev/User")
|
|
|
+ if(userCacheStr){
|
|
|
+ let userData = JSON.parse(userCacheStr)
|
|
|
+ // 设置用户信息
|
|
|
+ this.id = userData?.objectId;
|
|
|
+ this.sessionToken = userData?.sessionToken;
|
|
|
+ this.data = userData; // 保存用户数据
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ sessionToken:string|null = ""
|
|
|
+ /** 获取当前用户信息 */
|
|
|
+ async current() {
|
|
|
+ if (!this.sessionToken) {
|
|
|
+ console.error("用户未登录");
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ const response = await fetch(`http://dev.fmode.cn:1337/parse/users/me`, {
|
|
|
+ headers: {
|
|
|
+ "x-parse-application-id": "dev",
|
|
|
+ "x-parse-session-token": this.sessionToken // 使用sessionToken进行身份验证
|
|
|
+ },
|
|
|
+ method: "GET"
|
|
|
+ });
|
|
|
+
|
|
|
+ const result = await response?.json();
|
|
|
+ if (result?.error) {
|
|
|
+ console.error(result?.error);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /** 登录 */
|
|
|
+ async login(username: string, password: string):Promise<CloudUser|null> {
|
|
|
+ const response = await fetch(`http://dev.fmode.cn:1337/parse/login`, {
|
|
|
+ headers: {
|
|
|
+ "x-parse-application-id": "dev",
|
|
|
+ "Content-Type": "application/json"
|
|
|
+ },
|
|
|
+ body: JSON.stringify({ username, password }),
|
|
|
+ method: "POST"
|
|
|
+ });
|
|
|
+
|
|
|
+ const result = await response?.json();
|
|
|
+ if (result?.error) {
|
|
|
+ console.error(result?.error);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置用户信息
|
|
|
+ this.id = result?.objectId;
|
|
|
+ this.sessionToken = result?.sessionToken;
|
|
|
+ this.data = result; // 保存用户数据
|
|
|
+ // 缓存用户信息
|
|
|
+ console.log(result)
|
|
|
+ localStorage.setItem("NCloud/dev/User",JSON.stringify(result))
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ /** 登出 */
|
|
|
+ async logout() {
|
|
|
+ if (!this.sessionToken) {
|
|
|
+ console.error("用户未登录");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const response = await fetch(`http://dev.fmode.cn:1337/parse/logout`, {
|
|
|
+ headers: {
|
|
|
+ "x-parse-application-id": "dev",
|
|
|
+ "x-parse-session-token": this.sessionToken
|
|
|
+ },
|
|
|
+ method: "POST"
|
|
|
+ });
|
|
|
+
|
|
|
+ const result = await response?.json();
|
|
|
+ if (result?.error) {
|
|
|
+ console.error(result?.error);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 清除用户信息
|
|
|
+ localStorage.removeItem("NCloud/dev/User")
|
|
|
+ this.id = null;
|
|
|
+ this.sessionToken = null;
|
|
|
+ this.data = {};
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /** 注册 */
|
|
|
+ async signUp(username: string, password: string, additionalData: Record<string, any> = {}) {
|
|
|
+ const userData = {
|
|
|
+ username,
|
|
|
+ password,
|
|
|
+ ...additionalData // 合并额外的用户数据
|
|
|
+ };
|
|
|
+
|
|
|
+ const response = await fetch(`http://dev.fmode.cn:1337/parse/users`, {
|
|
|
+ headers: {
|
|
|
+ "x-parse-application-id": "dev",
|
|
|
+ "Content-Type": "application/json"
|
|
|
+ },
|
|
|
+ body: JSON.stringify(userData),
|
|
|
+ method: "POST"
|
|
|
+ });
|
|
|
+
|
|
|
+ const result = await response?.json();
|
|
|
+ if (result?.error) {
|
|
|
+ console.error(result?.error);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置用户信息
|
|
|
+ this.id = result?.objectId;
|
|
|
+ this.sessionToken = result?.sessionToken;
|
|
|
+ this.data = result; // 保存用户数据
|
|
|
+ return this;
|
|
|
+ }
|
|
|
}
|