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