init commit
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
const OAuthService = require('../../services/OAuthService');
|
||||
const JWTService = require('../../services/JwtService');
|
||||
const AuthService = require('../../services/AuthService');
|
||||
const ValidationService = require('../../services/ValidationService');
|
||||
const db = require('../../models');
|
||||
const app = require('express').Router();
|
||||
// prettier-ignore
|
||||
|
||||
|
||||
app.get('/member/google/initialize', async function (req, res) {
|
||||
const role_id = 2
|
||||
try {
|
||||
|
||||
|
||||
const authenticationUrl = OAuthService.google.generateAuthURL({
|
||||
redirect_uri: process.env.DYNAMIC_CONFIG_GOOGLE_REDIRECT_URI,
|
||||
client_id: process.env.DYNAMIC_CONFIG_GOOGLE_CLIENT_ID,
|
||||
});
|
||||
|
||||
res.redirect(authenticationUrl)
|
||||
} catch (error) {
|
||||
res.status(500).json({ success: false, message: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/member/google', async function (req, res) {
|
||||
try {
|
||||
const role_id = 2
|
||||
|
||||
const AuthViewModel = require('../../view_models/member_auth_view_model');
|
||||
var viewModel = new AuthViewModel(db.user, 'Google login');
|
||||
|
||||
const authToken = await OAuthService.google.generateAuthToken({
|
||||
redirect_uri: process.env.DYNAMIC_CONFIG_GOOGLE_REDIRECT_URI,
|
||||
client_id: process.env.DYNAMIC_CONFIG_GOOGLE_CLIENT_ID,
|
||||
client_secret: process.env.DYNAMIC_CONFIG_GOOGLE_CLIENT_SECRET,
|
||||
auth_code: req.query.code,
|
||||
});
|
||||
|
||||
const googleUser = await OAuthService.google.getUserInfo(authToken);
|
||||
|
||||
const payload = await OAuthService.authenticate({
|
||||
provider: 'g',
|
||||
id: googleUser.id,
|
||||
email: googleUser.email,
|
||||
first_name: googleUser.given_name,
|
||||
last_name: googleUser.family_name,
|
||||
image: googleUser.picture,
|
||||
});
|
||||
|
||||
const session = req.session;
|
||||
session.role = role_id;
|
||||
session.user = payload.user;
|
||||
|
||||
return session.save((error) => {
|
||||
if (error) {
|
||||
throw new Error(error);
|
||||
}
|
||||
return res.redirect('/member/dashboard');
|
||||
});
|
||||
} catch (error) {
|
||||
|
||||
viewModel.error = error.message || "Something went wrong";
|
||||
return res.render('member/Login', viewModel);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
module.exports = app;
|
||||
Reference in New Issue
Block a user