diff --git a/api/.env.example b/api/.env.example new file mode 100644 index 0000000..dd67aa1 --- /dev/null +++ b/api/.env.example @@ -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 + diff --git a/api/src/routes/auth.js b/api/src/routes/auth.js index a0ec0b8..2c3f1f4 100644 --- a/api/src/routes/auth.js +++ b/api/src/routes/auth.js @@ -12,9 +12,9 @@ const querystring = require('querystring'); passport.use(new OpenIDConnectStrategy({ issuer: process.env.AUTH_ISSUER, - authorizationURL: 'https://sso.iceberg-gaming.com/application/o/authorize/', - tokenURL: 'https://sso.iceberg-gaming.com/application/o/token/', - userInfoURL: 'https://sso.iceberg-gaming.com/application/o/userinfo/', + authorizationURL: process.env.AUTH_DOMAIN +'/authorize/', + tokenURL: process.env.AUTH_DOMAIN +'/token/', + userInfoURL: process.env.AUTH_DOMAIN +'/userinfo/', clientID: process.env.AUTH_CLIENT_ID, clientSecret: process.env.AUTH_CLIENT_SECRET, callbackURL: process.env.AUTH_REDIRECT_URI, @@ -69,7 +69,7 @@ router.get('/login', (req, res, next) => { // router.get('/callback', (req, res, next) => { // passport.authenticate('openidconnect', { // 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; passport.authenticate('openidconnect', (err, user) => { 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 => { if (err) return next(err); // Use redirect saved from session - const redirectTo = redirectURI || 'https://aj17thdev.nexuszone.net/'; + const redirectTo = redirectURI || process.env.BASE_URL; delete req.session.redirectTo; return res.redirect(redirectTo); }); @@ -95,7 +95,7 @@ router.post('/logout', function (req, res, next) { if (err) { return next(err); } var params = { 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)); }); diff --git a/ui/.env.example b/ui/.env.example new file mode 100644 index 0000000..ac971e4 --- /dev/null +++ b/ui/.env.example @@ -0,0 +1,2 @@ +# SITE SETTINGS +BASE_URL= diff --git a/ui/src/router/index.js b/ui/src/router/index.js index b688592..3f08f3d 100644 --- a/ui/src/router/index.js +++ b/ui/src/router/index.js @@ -37,6 +37,9 @@ const router = createRouter({ ] }) +const addr = import.meta.env.BASE_URL; + + router.beforeEach(async (to) => { const user = useUserStore() @@ -49,7 +52,7 @@ router.beforeEach(async (to) => { if (to.meta.requiresAuth && !user.isLoggedIn) { // Redirect back to original page after login 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 }