Merge branch 'main' into Training-Report

This commit is contained in:
2025-11-22 13:08:30 -05:00
5 changed files with 41 additions and 16 deletions

19
api/.env.example Normal file
View File

@@ -0,0 +1,19 @@
# DATABASE SETTINGS
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
# AUTH SETTINGS
AUTH_DOMAIN=
AUTH_ISSUER=
AUTH_CLIENT_ID=
AUTH_CLIENT_SECRET=
AUTH_REDIRECT_URI=
AUTH_REVOCATION_URI=
# AUTH_MODE=mock #uncomment this to bypass authentik
# SERVER SETTINGS
SERVER_PORT=3000

View File

@@ -12,9 +12,9 @@ const querystring = require('querystring');
passport.use(new OpenIDConnectStrategy({ passport.use(new OpenIDConnectStrategy({
issuer: process.env.AUTH_ISSUER, issuer: process.env.AUTH_ISSUER,
authorizationURL: 'https://sso.iceberg-gaming.com/application/o/authorize/', authorizationURL: process.env.AUTH_DOMAIN +'/authorize/',
tokenURL: 'https://sso.iceberg-gaming.com/application/o/token/', tokenURL: process.env.AUTH_DOMAIN +'/token/',
userInfoURL: 'https://sso.iceberg-gaming.com/application/o/userinfo/', userInfoURL: process.env.AUTH_DOMAIN +'/userinfo/',
clientID: process.env.AUTH_CLIENT_ID, clientID: process.env.AUTH_CLIENT_ID,
clientSecret: process.env.AUTH_CLIENT_SECRET, clientSecret: process.env.AUTH_CLIENT_SECRET,
callbackURL: process.env.AUTH_REDIRECT_URI, callbackURL: process.env.AUTH_REDIRECT_URI,
@@ -69,7 +69,7 @@ router.get('/login', (req, res, next) => {
// router.get('/callback', (req, res, next) => { // router.get('/callback', (req, res, next) => {
// passport.authenticate('openidconnect', { // passport.authenticate('openidconnect', {
// successRedirect: req.session.redirectTo, // successRedirect: req.session.redirectTo,
// failureRedirect: 'https://aj17thdev.nexuszone.net/' // failureRedirect: process.env.BASE_URL
// }) // })
// }); // });
@@ -77,13 +77,13 @@ router.get('/callback', (req, res, next) => {
const redirectURI = req.session.redirectTo; const redirectURI = req.session.redirectTo;
passport.authenticate('openidconnect', (err, user) => { passport.authenticate('openidconnect', (err, user) => {
if (err) return next(err); if (err) return next(err);
if (!user) return res.redirect('https://aj17thdev.nexuszone.net/'); if (!user) return res.redirect(process.env.BASE_URL);
req.logIn(user, err => { req.logIn(user, err => {
if (err) return next(err); if (err) return next(err);
// Use redirect saved from session // Use redirect saved from session
const redirectTo = redirectURI || 'https://aj17thdev.nexuszone.net/'; const redirectTo = redirectURI || process.env.BASE_URL;
delete req.session.redirectTo; delete req.session.redirectTo;
return res.redirect(redirectTo); return res.redirect(redirectTo);
}); });
@@ -95,7 +95,7 @@ router.post('/logout', function (req, res, next) {
if (err) { return next(err); } if (err) { return next(err); }
var params = { var params = {
client_id: process.env.AUTH_CLIENT_ID, client_id: process.env.AUTH_CLIENT_ID,
returnTo: 'https://aj17thdev.nexuszone.net/' returnTo: process.env.BASE_URL
}; };
res.redirect(process.env.AUTH_DOMAIN + '/v2/logout?' + querystring.stringify(params)); res.redirect(process.env.AUTH_DOMAIN + '/v2/logout?' + querystring.stringify(params));
}); });

2
ui/.env.example Normal file
View File

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

View File

@@ -24,9 +24,10 @@ const userStore = useUserStore();
// console.log(data); // console.log(data);
// userStore.user = data; // userStore.user = data;
// }); // });
const APIHOST = import.meta.env.VITE_APIHOST;
async function logout() { async function logout() {
await fetch(`${import.meta.env.VITE_APIHOST}/logout`, { await fetch(`${APIHOST}/logout`, {
method: 'POST', method: 'POST',
credentials: 'include', credentials: 'include',
}); });
@@ -112,7 +113,7 @@ function formatDate(dateStr) {
</DropdownMenuContent> </DropdownMenuContent>
</DropdownMenu> </DropdownMenu>
<a v-else href="https://aj17thdevapi.nexuszone.net/login">Login</a> <a v-else :href="APIHOST+'/login'">Login</a>
</div> </div>
</div> </div>
<Separator></Separator> <Separator></Separator>

View File

@@ -40,6 +40,9 @@ const router = createRouter({
] ]
}) })
const addr = import.meta.env.VITE_APIHOST;
router.beforeEach(async (to) => { router.beforeEach(async (to) => {
const user = useUserStore() const user = useUserStore()
@@ -48,13 +51,13 @@ router.beforeEach(async (to) => {
await user.loadUser(); await user.loadUser();
} }
// // Not logged in // Not logged in
// if (to.meta.requiresAuth && !user.isLoggedIn) { if (to.meta.requiresAuth && !user.isLoggedIn) {
// // Redirect back to original page after login // Redirect back to original page after login
// const redirectUrl = encodeURIComponent(window.location.origin + to.fullPath) const redirectUrl = encodeURIComponent(window.location.origin + to.fullPath)
// window.location.href = `https://aj17thdevapi.nexuszone.net/login?redirect=${redirectUrl}` window.location.href = `${addr}/login?redirect=${redirectUrl}`
// return false // Prevent Vue Router from continuing return false // Prevent Vue Router from continuing
// } }
// // Must be a member // // Must be a member