add oauth app connected
This commit is contained in:
@@ -127,6 +127,30 @@ export interface OAuthScope {
|
||||
description?: string;
|
||||
}
|
||||
|
||||
export interface OAuthConsentScopeInfo {
|
||||
slug: string;
|
||||
name: string;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
export interface OAuthConsentCheckResponse {
|
||||
granted: boolean;
|
||||
client?: {
|
||||
clientId: string;
|
||||
name: string;
|
||||
};
|
||||
requestedScopes?: OAuthConsentScopeInfo[];
|
||||
}
|
||||
|
||||
export interface OAuthUserConsent {
|
||||
id: string;
|
||||
clientId: string;
|
||||
clientName: string;
|
||||
scopes: OAuthConsentScopeInfo[];
|
||||
grantedAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface OAuthClient {
|
||||
id: string;
|
||||
name: string;
|
||||
@@ -411,15 +435,35 @@ export async function fetchAuthSession(token?: string | null): Promise<AuthSessi
|
||||
}
|
||||
|
||||
export async function approveOAuthAuthorization(params: URLSearchParams, token: string) {
|
||||
const body = {
|
||||
client_id: params.get('client_id') ?? params.get('clientId') ?? undefined,
|
||||
redirect_uri: params.get('redirect_uri') ?? params.get('redirectUri') ?? undefined,
|
||||
scope: params.get('scope') ?? 'openid profile',
|
||||
state: params.get('state') ?? undefined,
|
||||
nonce: params.get('nonce') ?? undefined
|
||||
};
|
||||
return apiFetch<{ redirectUrl?: string }>('/oauth/consent/approve', {
|
||||
method: 'POST',
|
||||
headers: { Accept: 'application/json', 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(body)
|
||||
}, token);
|
||||
}
|
||||
|
||||
export async function checkOAuthConsent(params: URLSearchParams, token: string) {
|
||||
const query = new URLSearchParams();
|
||||
params.forEach((value, key) => {
|
||||
if (key !== 'userId') query.set(key, value);
|
||||
});
|
||||
return apiFetch<{ redirectUrl?: string }>(
|
||||
`/oauth/authorize?${query.toString()}`,
|
||||
{ headers: { Accept: 'application/json' } },
|
||||
token
|
||||
);
|
||||
const clientId = params.get('client_id') ?? params.get('clientId');
|
||||
const scope = params.get('scope') ?? 'openid profile';
|
||||
if (clientId) query.set('client_id', clientId);
|
||||
query.set('scope', scope);
|
||||
return apiFetch<OAuthConsentCheckResponse>(`/oauth/consent/check?${query.toString()}`, {}, token);
|
||||
}
|
||||
|
||||
export async function fetchUserOAuthConsents(userId: string, token: string) {
|
||||
return apiFetch<{ consents?: OAuthUserConsent[] }>(`/oauth/consents/users/${userId}`, {}, token);
|
||||
}
|
||||
|
||||
export async function revokeOAuthConsent(userId: string, consentId: string, token: string) {
|
||||
return apiFetch(`/oauth/consents/users/${userId}/${consentId}`, { method: 'DELETE' }, token);
|
||||
}
|
||||
|
||||
export async function refreshAuthSession(): Promise<RefreshSessionResponse> {
|
||||
|
||||
Reference in New Issue
Block a user