diff options
author | crupest <crupest@outlook.com> | 2021-01-09 01:07:35 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2021-01-09 01:07:35 +0800 |
commit | 8edf6d566cecd94d251a4e29ae8c35b77f88d6db (patch) | |
tree | 0e4371f4a40fabaf5c87baca491d2631665cd2ae /FrontEnd/src/app/services/user.ts | |
parent | 777efa6e0405f4e871de4da21b939e30ed07f754 (diff) | |
download | timeline-8edf6d566cecd94d251a4e29ae8c35b77f88d6db.tar.gz timeline-8edf6d566cecd94d251a4e29ae8c35b77f88d6db.tar.bz2 timeline-8edf6d566cecd94d251a4e29ae8c35b77f88d6db.zip |
...
Diffstat (limited to 'FrontEnd/src/app/services/user.ts')
-rw-r--r-- | FrontEnd/src/app/services/user.ts | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/FrontEnd/src/app/services/user.ts b/FrontEnd/src/app/services/user.ts index 7a60b474..c3343493 100644 --- a/FrontEnd/src/app/services/user.ts +++ b/FrontEnd/src/app/services/user.ts @@ -5,7 +5,12 @@ import { map, filter } from "rxjs/operators"; import { UiLogicError } from "@/common"; import { convertError } from "@/utilities/rxjs"; -import { HttpNetworkError, BlobWithEtag, NotModified } from "@/http/common"; +import { + HttpNetworkError, + BlobWithEtag, + NotModified, + tokenSubject, +} from "@/http/common"; import { getHttpTokenClient, HttpCreateTokenBadCredentialError, @@ -61,6 +66,12 @@ export class BadCredentialError { const USER_STORAGE_KEY = "currentuser"; export class UserService { + constructor() { + this.userSubject.subscribe((u) => { + tokenSubject.next(u?.token ?? null); + }); + } + private userSubject = new BehaviorSubject<AuthUser | null | undefined>( undefined ); @@ -167,13 +178,10 @@ export class UserService { throw new UiLogicError("Not login or checked now, can't log out."); } const $ = from( - getHttpUserClient().changePassword( - { - oldPassword, - newPassword, - }, - this.currentUser.token - ) + getHttpUserClient().changePassword({ + oldPassword, + newPassword, + }) ); $.subscribe(() => { void this.logout(); @@ -378,15 +386,13 @@ export class UserInfoService { } async setAvatar(username: string, blob: Blob): Promise<void> { - const user = checkLogin(); - await getHttpUserClient().putAvatar(username, blob, user.token); + await getHttpUserClient().putAvatar(username, blob); this._avatarHub.getLine(username)?.next({ data: blob, type: "synced" }); } async setNickname(username: string, nickname: string): Promise<void> { - const user = checkLogin(); return getHttpUserClient() - .patch(username, { nickname }, user.token) + .patch(username, { nickname }) .then((user) => { this.saveUser(user); }); |