提交 cfc6a123 编写于 作者: R Rachel Macfarlane

Add logout method to auth provider API

上级 4e5840cf
...@@ -128,6 +128,14 @@ declare module 'vscode' { ...@@ -128,6 +128,14 @@ declare module 'vscode' {
*/ */
export function login(providerId: string, scopes: string[]): Thenable<AuthenticationSession>; export function login(providerId: string, scopes: string[]): Thenable<AuthenticationSession>;
/**
* Logout of a specific session.
* @param providerId The id of the provider to use
* @param sessionId The session id to remove
* provider
*/
export function logout(providerId: string, sessionId: string): Thenable<void>;
/** /**
* An [event](#Event) which fires when the array of sessions has changed, or data * An [event](#Event) which fires when the array of sessions has changed, or data
* within a session has changed for a provider. Fires with the ids of the providers * within a session has changed for a provider. Fires with the ids of the providers
......
...@@ -202,6 +202,9 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I ...@@ -202,6 +202,9 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
login(providerId: string, scopes: string[]): Thenable<vscode.AuthenticationSession> { login(providerId: string, scopes: string[]): Thenable<vscode.AuthenticationSession> {
return extHostAuthentication.login(extension, providerId, scopes); return extHostAuthentication.login(extension, providerId, scopes);
}, },
logout(providerId: string, sessionId: string): Thenable<void> {
return extHostAuthentication.logout(providerId, sessionId);
},
get onDidChangeSessions(): Event<{ [providerId: string]: vscode.AuthenticationSessionsChangeEvent }> { get onDidChangeSessions(): Event<{ [providerId: string]: vscode.AuthenticationSessionsChangeEvent }> {
return extHostAuthentication.onDidChangeSessions; return extHostAuthentication.onDidChangeSessions;
}, },
......
...@@ -102,6 +102,15 @@ export class ExtHostAuthentication implements ExtHostAuthenticationShape { ...@@ -102,6 +102,15 @@ export class ExtHostAuthentication implements ExtHostAuthenticationShape {
}; };
} }
async logout(providerId: string, sessionId: string): Promise<void> {
const provider = this._authenticationProviders.get(providerId);
if (!provider) {
throw new Error(`No authentication provider with id '${providerId}' is currently registered.`);
}
return provider.logout(sessionId);
}
registerAuthenticationProvider(provider: vscode.AuthenticationProvider): vscode.Disposable { registerAuthenticationProvider(provider: vscode.AuthenticationProvider): vscode.Disposable {
if (this._authenticationProviders.get(provider.id)) { if (this._authenticationProviders.get(provider.id)) {
throw new Error(`An authentication provider with id '${provider.id}' is already registered.`); throw new Error(`An authentication provider with id '${provider.id}' is already registered.`);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册