87 lines
2.2 KiB
TypeScript
87 lines
2.2 KiB
TypeScript
import express, { Request } from "express";
|
|
import passport from "passport";
|
|
const router = express.Router();
|
|
import axios from "axios";
|
|
import logger from "../logger/logger";
|
|
import Session from "../models/session";
|
|
|
|
import * as calendarController from "../controllers/calendarController";
|
|
|
|
router.get(
|
|
"/auth/google",
|
|
passport.authenticate("google", {
|
|
accessType: "offline",
|
|
//session: false,
|
|
scope: [
|
|
"https://www.googleapis.com/auth/calendar.app.created",
|
|
"https://www.googleapis.com/auth/calendar.events.freebusy",
|
|
"https://www.googleapis.com/auth/userinfo.profile",
|
|
],
|
|
})
|
|
);
|
|
|
|
router.get(
|
|
"/auth/google/callback",
|
|
passport.authenticate("google", {
|
|
failureRedirect: process.env.PASSPORT_FAILURE_REDIRECT_URL as string,
|
|
}),
|
|
function (req, res) {
|
|
// Successful authentication, redirect home.
|
|
console.log(
|
|
"req.user",
|
|
req.user,
|
|
req.cookies,
|
|
(req as Request & { accessToken?: string }).accessToken,
|
|
(req as Request & { refreshToken?: string }).refreshToken
|
|
);
|
|
|
|
const sessionId = req.cookies["session"];
|
|
|
|
if (!sessionId) {
|
|
logger.error("session cookie not found");
|
|
res.redirect(process.env.PASSPORT_FAILURE_REDIRECT_URL as string);
|
|
return;
|
|
}
|
|
|
|
Session.findOne({
|
|
where: {
|
|
session_id: sessionId,
|
|
},
|
|
})
|
|
.then((userSession) => {
|
|
if (!userSession) {
|
|
logger.error("user session not found");
|
|
res.redirect(process.env.PASSPORT_FAILURE_REDIRECT_URL as string);
|
|
return;
|
|
}
|
|
|
|
console.log("userSession", userSession);
|
|
/*
|
|
axios.post("", {
|
|
user_id: userSession.user_id,
|
|
refresh_token: req.user.refreshToken,
|
|
pass: req.user.accessToken,
|
|
}); */
|
|
|
|
res.redirect(process.env.PASSPORT_SUCCESS_REDIRECT_URL as string);
|
|
})
|
|
.catch((err) => {
|
|
logger.error(err);
|
|
res.redirect(process.env.PASSPORT_FAILURE_REDIRECT_URL as string);
|
|
});
|
|
|
|
// /api/v1/addGoogleAccount
|
|
|
|
/*
|
|
user_id
|
|
refresh_token
|
|
pass
|
|
*/
|
|
}
|
|
);
|
|
|
|
router.get("/store", calendarController.GetStoreId);
|
|
router.get("/settings", calendarController.GetCalendarSettings);
|
|
|
|
export default router;
|