mirror of
https://github.com/outline/outline.git
synced 2026-06-13 11:25:03 +03:00
a06671e8ce
This PR contains the necessary work to make Outline an OAuth provider including: - OAuth app registration - OAuth app management - Private / public apps (Public in cloud only) - Full OAuth 2.0 spec compatible authentication flow - Granular scopes - User token management screen in settings - Associated API endpoints for programatic access
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { OAuthClient } from "@server/models";
|
|
|
|
/**
|
|
* Presents the OAuth client to the user.
|
|
*
|
|
* @param oauthClient The OAuth client to present
|
|
*/
|
|
export default function presentOAuthClient(oauthClient: OAuthClient) {
|
|
return {
|
|
id: oauthClient.id,
|
|
name: oauthClient.name,
|
|
description: oauthClient.description,
|
|
developerName: oauthClient.developerName,
|
|
developerUrl: oauthClient.developerUrl,
|
|
avatarUrl: oauthClient.avatarUrl,
|
|
clientId: oauthClient.clientId,
|
|
clientSecret: oauthClient.clientSecret,
|
|
redirectUris: oauthClient.redirectUris,
|
|
published: oauthClient.published,
|
|
createdAt: oauthClient.createdAt,
|
|
updatedAt: oauthClient.updatedAt,
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Important: This function is used to present the OAuth client to users
|
|
* that are NOT in the same workspace as the client. Be very careful about
|
|
* what you expose here.
|
|
*
|
|
* @param oauthClient The OAuth client to present
|
|
*/
|
|
export function presentPublishedOAuthClient(oauthClient: OAuthClient) {
|
|
return {
|
|
name: oauthClient.name,
|
|
description: oauthClient.description,
|
|
developerName: oauthClient.developerName,
|
|
developerUrl: oauthClient.developerUrl,
|
|
avatarUrl: oauthClient.avatarUrl,
|
|
clientId: oauthClient.clientId,
|
|
published: oauthClient.published,
|
|
};
|
|
}
|