aboutsummaryrefslogtreecommitdiff
path: root/src/server/authentication
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/authentication')
-rw-r--r--src/server/authentication/config/passport.ts18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/server/authentication/config/passport.ts b/src/server/authentication/config/passport.ts
index d42741410..97ded8785 100644
--- a/src/server/authentication/config/passport.ts
+++ b/src/server/authentication/config/passport.ts
@@ -1,12 +1,14 @@
import * as passport from 'passport';
import * as passportLocal from 'passport-local';
-import * as mongodb from 'mongodb';
-import * as _ from "lodash";
+import _ from "lodash";
import { default as User } from '../models/user_model';
import { Request, Response, NextFunction } from "express";
import { RouteStore } from '../../RouteStore';
+import * as GoogleOAuth from "passport-google-oauth20";
+const config = require("../../credentials/google_photos_credentials");
const LocalStrategy = passportLocal.Strategy;
+const GoogleOAuthStrategy = GoogleOAuth.Strategy;
passport.serializeUser<any, any>((user, done) => {
done(undefined, user.id);
@@ -32,6 +34,18 @@ passport.use(new LocalStrategy({ usernameField: 'email', passReqToCallback: true
});
}));
+
+passport.use(new GoogleOAuthStrategy(
+ {
+ clientID: config.oAuthClientID,
+ clientSecret: config.oAuthclientSecret,
+ callbackURL: config.oAuthCallbackUrl,
+ // Set the correct profile URL that does not require any additional APIs
+ userProfileURL: 'https://www.googleapis.com/oauth2/v3/userinfo'
+ },
+ (token, refreshToken, profile, done) => done(undefined, { profile, token })
+));
+
export let isAuthenticated = (req: Request, res: Response, next: NextFunction) => {
if (req.isAuthenticated()) {
return next();