From c17e2eb87ec9c30f99d32a134f65dcfd67f4af44 Mon Sep 17 00:00:00 2001 From: Marius Riedl Date: Wed, 3 Nov 2021 17:36:38 +0100 Subject: [PATCH] Add passport --- server/auth/passport.ts | 34 ++++++++++++++++++++++++++++++++++ src/models/User.ts | 11 +++++++++++ 2 files changed, 45 insertions(+) create mode 100644 server/auth/passport.ts create mode 100644 src/models/User.ts diff --git a/server/auth/passport.ts b/server/auth/passport.ts new file mode 100644 index 0000000..e441e00 --- /dev/null +++ b/server/auth/passport.ts @@ -0,0 +1,34 @@ +import dotenv from "dotenv"; +import passport from "passport"; +import { Strategy } from "passport-steam"; +import { SteamUser } from "../../src/models/User"; + +dotenv.config(); + +const serverPort = Number(process.env.PORT)! + 1; +const serverUrl = process.env.BASE_URL + ":" + serverPort; + +passport.use( + new Strategy( + { + returnURL: serverUrl + "/auth/callback", + realm: serverUrl, + apiKey: process.env.STEAM_API_KEY, + }, + function (identifier: any, profile: any, done: any) { + return done(null, profile); + }, + ), +); + +passport.serializeUser(function (user, done) { + const u = user as SteamUser; + done(null, u); +}); + +passport.deserializeUser(function (user, done) { + const u = user as SteamUser; + done(null, u); +}); + +export default passport; diff --git a/src/models/User.ts b/src/models/User.ts new file mode 100644 index 0000000..d94d642 --- /dev/null +++ b/src/models/User.ts @@ -0,0 +1,11 @@ +export interface SteamUser { + provider: string; + id: string; + _json: Record; + displayName: string; + photos: [ + Record, + Record, + Record, + ]; +} -- 2.44.0