diff --git a/app/src/RoomClient.js b/app/src/RoomClient.js index 7e7b22ec..4cb33c14 100644 --- a/app/src/RoomClient.js +++ b/app/src/RoomClient.js @@ -534,6 +534,14 @@ export default class RoomClient window.open(`/auth/logout?peerId=${this._peerId}&roomId=${roomId}`, 'logoutWindow'); } + setLoggedIn(loggedIn) + { + logger.debug('setLoggedIn() | [loggedIn: "%s"]', loggedIn); + + store.dispatch(meActions.loggedIn(loggedIn)); + + } + receiveLoginChildWindow(data) { logger.debug('receiveFromChildWindow() | [data:"%o"]', data); diff --git a/app/src/components/JoinDialog.js b/app/src/components/JoinDialog.js index 00a791d7..79b868a1 100644 --- a/app/src/components/JoinDialog.js +++ b/app/src/components/JoinDialog.js @@ -1,4 +1,5 @@ import React, { useState, useEffect } from 'react'; +import Logger from '../Logger'; import { connect } from 'react-redux'; import { withStyles } from '@material-ui/core/styles'; import { withRoomContext } from '../RoomContext'; @@ -126,6 +127,8 @@ const styles = (theme) => }); +const logger = new Logger('JoinDialog'); + const DialogTitle = withStyles((theme) => ({ root : { @@ -174,9 +177,7 @@ const JoinDialog = ({ displayName = displayName.trimLeft(); - const authTypeDefault = (loggedIn) ? 'auth' : 'guest'; - - const [ authType, setAuthType ] = useState(authTypeDefault); + const [ authType, setAuthType ] = useState((loggedIn) ? 'auth' : 'guest'); const [ roomId, setRoomId ] = useState( decodeURIComponent(location.pathname.slice(1)) || @@ -286,6 +287,25 @@ const JoinDialog = ({ } }; + fetch('/auth/check_login_status', { + credentials : 'include', + method : 'GET', + cache : 'no-cache', + redirect : 'follow', + referrerPolicy : 'no-referrer' }) + .then((response) => response.json()) + .then((json) => + { + if (json.loggedIn) + { + roomClient.setLoggedIn(json.loggedIn); + } + }) + .catch((error) => + { + logger.error('Error checking login status', error); + }); + return (
+ { + let loggedIn = false; + + if (Boolean(req.session.passport) && + Boolean(req.session.passport.user)) + { + loggedIn = true; + } + + res.send({ loggedIn: loggedIn }); + }); + // logout app.get('/auth/logout', (req, res) => {