26-login-route #28

Merged
Ajdj100 merged 4 commits from 26-login-route into main 2025-11-22 17:08:39 -06:00
5 changed files with 15 additions and 14 deletions

View File

@@ -16,4 +16,4 @@ AUTH_REVOCATION_URI=
# SERVER SETTINGS
SERVER_PORT=3000
CLIENT_URL= # This is whatever URL the client web app is served on

View File

@@ -61,7 +61,7 @@ passport.use(new OpenIDConnectStrategy({
router.get('/login', (req, res, next) => {
// Store redirect target in session if provided
req.session.redirectTo = req.query.redirect || '/';
req.session.redirectTo = req.query.redirect;
next();
}, passport.authenticate('openidconnect'));
@@ -69,7 +69,7 @@ router.get('/login', (req, res, next) => {
// router.get('/callback', (req, res, next) => {
// passport.authenticate('openidconnect', {
// successRedirect: req.session.redirectTo,
// failureRedirect: process.env.BASE_URL
// failureRedirect: process.env.CLIENT_URL
// })
// });
@@ -77,27 +77,27 @@ router.get('/callback', (req, res, next) => {
const redirectURI = req.session.redirectTo;
passport.authenticate('openidconnect', (err, user) => {
if (err) return next(err);
if (!user) return res.redirect(process.env.BASE_URL);
if (!user) return res.redirect(process.env.CLIENT_URL);
req.logIn(user, err => {
if (err) return next(err);
// Use redirect saved from session
const redirectTo = redirectURI || process.env.BASE_URL;
const redirectTo = redirectURI || process.env.CLIENT_URL;
delete req.session.redirectTo;
return res.redirect(redirectTo);
});
})(req, res, next);
});
router.post('/logout', function (req, res, next) {
router.get('/logout', function (req, res, next) {
req.logout(function (err) {
if (err) { return next(err); }
var params = {
client_id: process.env.AUTH_CLIENT_ID,
returnTo: process.env.BASE_URL
returnTo: process.env.CLIENT_URL
};
res.redirect(process.env.AUTH_DOMAIN + '/v2/logout?' + querystring.stringify(params));
res.redirect(process.env.AUTH_END_SESSION_URI + '?' + querystring.stringify(params));
});
});

View File

@@ -1,2 +1,2 @@
# SITE SETTINGS
BASE_URL=
VITE_APIHOST=

View File

@@ -27,12 +27,13 @@ const userStore = useUserStore();
const APIHOST = import.meta.env.VITE_APIHOST;
async function logout() {
await fetch(`${APIHOST}/logout`, {
method: 'POST',
credentials: 'include',
});
// await fetch(`${APIHOST}/logout`, {
// method: 'GET',
// credentials: 'include',
// });
userStore.user = null;
window.location.href = APIHOST + "/logout";
}
function formatDate(dateStr) {

View File

@@ -2,7 +2,7 @@ import { useUserStore } from '@/stores/user'
import { createRouter, createWebHistory } from 'vue-router'
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
history: createWebHistory(),
routes: [
// PUBLIC
{ path: '/join', component: () => import('@/pages/Join.vue') },