diff --git a/README.md b/README.md index a6489ef..813ab97 100644 --- a/README.md +++ b/README.md @@ -18,19 +18,8 @@ It just needs to sit there with no more action required. declare global { namespace Express { - interface UserInfo { - email: string, - email_verified: boolean, - family_name: string, - given_name: string, - groups: string[], - name: string, - preferred_username: string, - sub: string, - } - interface Request { - getUserInfo(): Promise|undefined>; + getUserInfo(): Promise; noLogging: boolean|undefined; permissionDetails?: import('role-acl').Permission; } diff --git a/src/auth-proxy.ts b/src/auth-proxy.ts index 7976ac5..117a633 100644 --- a/src/auth-proxy.ts +++ b/src/auth-proxy.ts @@ -14,7 +14,7 @@ const router: RequestHandler = (req: Request, res, next) => { } try { const res = await fetch(url, {headers: [[DefaultConfig.USERINFO_HEADER, token]]}); - return await res.json() as Partial; + return await res.json() as UserInfo; } catch (e) { Logger.warn(e); return undefined; diff --git a/src/helpers/userinfo.ts b/src/helpers/userinfo.ts index 05134b2..25c44da 100644 --- a/src/helpers/userinfo.ts +++ b/src/helpers/userinfo.ts @@ -1,10 +1,32 @@ -export type UserInfo = { - email: string, - email_verified: boolean, - family_name: string, - given_name: string, - groups: string[], - name: string, - preferred_username: string, - sub: string, -}; +export interface UserInfo { + sub: string; + name?: string; + given_name?: string; + family_name?: string; + middle_name?: string; + nickname?: string; + preferred_username?: string; + profile?: string; + picture?: string; + website?: string; + email?: string; + email_verified?: boolean; + gender?: string; + birthdate?: string; + zoneinfo?: string; + locale?: string; + phone_number?: string; + updated_at?: number; + address?: { + formatted?: string; + street_address?: string; + locality?: string; + region?: string; + postal_code?: string; + country?: string; + + [key: string]: unknown; + }; + + [key: string]: unknown; +} diff --git a/src/types/extend-request.d.ts b/src/types/extend-request.d.ts index 068e6fc..0111bd5 100644 --- a/src/types/extend-request.d.ts +++ b/src/types/extend-request.d.ts @@ -2,19 +2,8 @@ declare global { namespace Express { - interface UserInfo { - email: string, - email_verified: boolean, - family_name: string, - given_name: string, - groups: string[], - name: string, - preferred_username: string, - sub: string, - } - interface Request { - getUserInfo(): Promise|undefined>; + getUserInfo(): Promise; noLogging: boolean|undefined; permissionDetails?: import('role-acl').Permission; }