~xenrox/10man-web

c17e2eb87ec9c30f99d32a134f65dcfd67f4af44 — Marius Riedl 2 years ago fcb3be8
Add passport
2 files changed, 45 insertions(+), 0 deletions(-)

A server/auth/passport.ts
A src/models/User.ts
A server/auth/passport.ts => server/auth/passport.ts +34 -0
@@ 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;

A src/models/User.ts => src/models/User.ts +11 -0
@@ 0,0 1,11 @@
export interface SteamUser {
  provider: string;
  id: string;
  _json: Record<string, unknown>;
  displayName: string;
  photos: [
    Record<string, unknown>,
    Record<string, unknown>,
    Record<string, unknown>,
  ];
}