From 7c454575eff148aefee68143cc37249f6227aeb5 Mon Sep 17 00:00:00 2001 From: RaviAnand Mohabir Date: Fri, 21 May 2021 13:12:10 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Add=20`RedditOAuthProvider.profi?= =?UTF-8?q?leHandler`=20for=20general=20use=20and=20stripping=20of=20paylo?= =?UTF-8?q?ad?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/lib/appAuth.ts | 50 ++-------------------- src/providers/reddit.ts | 94 +++++++++++++++++++++-------------------- 2 files changed, 52 insertions(+), 92 deletions(-) diff --git a/app/src/lib/appAuth.ts b/app/src/lib/appAuth.ts index 307716d..c9ad5a6 100644 --- a/app/src/lib/appAuth.ts +++ b/app/src/lib/appAuth.ts @@ -32,53 +32,9 @@ export const appAuth = new SvelteKitAuth({ new RedditOAuthProvider({ apiKey: import.meta.env.VITE_REDDIT_API_KEY, apiSecret: import.meta.env.VITE_REDDIT_API_SECRET, - profile({ - is_employee, - has_external_account, - snoovatar_img, - verified, - id, - over_18, - is_gold, - is_mod, - awarder_karma, - has_verified_email, - is_suspended, - icon_img, - pref_nightmode, - awardee_karma, - password_set, - link_karma, - total_karma, - name, - created, - created_utc, - comment_karma, - }) { - return { - is_employee, - has_external_account, - snoovatar_img, - verified, - id, - over_18, - is_gold, - is_mod, - awarder_karma, - has_verified_email, - is_suspended, - icon_img, - pref_nightmode, - awardee_karma, - password_set, - link_karma, - total_karma, - name, - created, - created_utc, - comment_karma, - provider: "reddit", - }; + profile(profile) { + profile = RedditOAuthProvider.profileHandler(profile); + return { ...profile, provider: "reddit" }; }, }), ], diff --git a/src/providers/reddit.ts b/src/providers/reddit.ts index 9304f95..240a502 100644 --- a/src/providers/reddit.ts +++ b/src/providers/reddit.ts @@ -8,55 +8,57 @@ interface RedditOAuthProviderConfig extends OAuth2ProviderConfig { duration?: "temporary" | "permanent"; } +const redditProfileHandler = ({ + is_employee, + has_external_account, + snoovatar_img, + verified, + id, + over_18, + is_gold, + is_mod, + awarder_karma, + has_verified_email, + is_suspended, + icon_img, + pref_nightmode, + awardee_karma, + password_set, + link_karma, + total_karma, + name, + created, + created_utc, + comment_karma, +}) => ({ + is_employee, + has_external_account, + snoovatar_img, + verified, + id, + over_18, + is_gold, + is_mod, + awarder_karma, + has_verified_email, + is_suspended, + icon_img, + pref_nightmode, + awardee_karma, + password_set, + link_karma, + total_karma, + name, + created, + created_utc, + comment_karma, +}); + const defaultConfig: Partial = { id: "reddit", scope: "identity", duration: "temporary", - profile: ({ - is_employee, - has_external_account, - snoovatar_img, - verified, - id, - over_18, - is_gold, - is_mod, - awarder_karma, - has_verified_email, - is_suspended, - icon_img, - pref_nightmode, - awardee_karma, - password_set, - link_karma, - total_karma, - name, - created, - created_utc, - comment_karma, - }) => ({ - is_employee, - has_external_account, - snoovatar_img, - verified, - id, - over_18, - is_gold, - is_mod, - awarder_karma, - has_verified_email, - is_suspended, - icon_img, - pref_nightmode, - awardee_karma, - password_set, - link_karma, - total_karma, - name, - created, - created_utc, - comment_karma, - }), + profile: redditProfileHandler, }; export class RedditOAuthProvider extends OAuth2Provider { @@ -67,6 +69,8 @@ export class RedditOAuthProvider extends OAuth2Provider