mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-13 12:55:00 +00:00
feat: add logout
This commit is contained in:
@@ -43,8 +43,8 @@ export class DataCenter {
|
||||
};
|
||||
};
|
||||
// TODO: switch different provider
|
||||
dc.registerProvider(new LocalProvider(getInitParams()));
|
||||
dc.registerProvider(new AffineProvider(getInitParams()));
|
||||
await dc.registerProvider(new LocalProvider(getInitParams()));
|
||||
await dc.registerProvider(new AffineProvider(getInitParams()));
|
||||
|
||||
for (const provider of dc.providerMap.values()) {
|
||||
await provider.loadWorkspaces();
|
||||
@@ -57,12 +57,12 @@ export class DataCenter {
|
||||
* Register provider.
|
||||
* We will automatically set the first provider to default provider.
|
||||
*/
|
||||
registerProvider(provider: BaseProvider) {
|
||||
async registerProvider(provider: BaseProvider) {
|
||||
if (!this._mainProvider) {
|
||||
this._mainProvider = provider;
|
||||
}
|
||||
|
||||
provider.init();
|
||||
await provider.init();
|
||||
this.providerMap.set(provider.id, provider);
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ import { getApis } from './apis/index.js';
|
||||
import type { Apis, WorkspaceDetail, Callback } from './apis';
|
||||
import { setDefaultAvatar } from '../utils.js';
|
||||
import { MessageCode } from '../../message';
|
||||
import { blob } from 'stream/consumers';
|
||||
import { token } from './apis/token.js';
|
||||
|
||||
export interface AffineProviderConstructorParams
|
||||
extends ProviderConstructorParams {
|
||||
@@ -213,6 +213,7 @@ export class AffineProvider extends BaseProvider {
|
||||
|
||||
public override async getUserInfo(): Promise<User | undefined> {
|
||||
const user = this._apis.token.user;
|
||||
await this.init;
|
||||
return user
|
||||
? {
|
||||
id: user.id,
|
||||
@@ -359,4 +360,9 @@ export class AffineProvider extends BaseProvider {
|
||||
});
|
||||
return to;
|
||||
}
|
||||
|
||||
public override async logout(): Promise<void> {
|
||||
token.clear();
|
||||
storage.removeItem('token');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,6 +140,10 @@ class Token {
|
||||
this.callbacks.splice(index, 1);
|
||||
}
|
||||
}
|
||||
|
||||
clear() {
|
||||
this._setToken();
|
||||
}
|
||||
}
|
||||
|
||||
export const token = new Token();
|
||||
|
||||
Reference in New Issue
Block a user