Merge branch 'master' into develop
Signed-off-by: Gregoire Parant <g.parant@thecodingmachine.com> # Conflicts: # front/src/Components/Menu/Menu.svelte # front/src/Components/Menu/ProfileSubMenu.svelte # front/src/Components/Menu/SettingsSubMenu.svelte # front/src/Connexion/ConnectionManager.ts # front/src/Stores/MediaStore.ts # front/src/Stores/MenuStore.ts # front/style/TextGlobalMessageSvelte-Style.scss # front/style/style.scss
This commit is contained in:
commit
3a3e5d5f3b
5 changed files with 16 additions and 9 deletions
2
front/dist/.htaccess
vendored
2
front/dist/.htaccess
vendored
|
@ -22,3 +22,5 @@ RewriteBase /
|
||||||
RewriteCond %{REQUEST_FILENAME} !-f
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
RewriteRule "^[_@]/" "/index.html" [L]
|
RewriteRule "^[_@]/" "/index.html" [L]
|
||||||
RewriteRule "^register/" "/index.html" [L]
|
RewriteRule "^register/" "/index.html" [L]
|
||||||
|
RewriteRule "^login" "/index.html" [L]
|
||||||
|
RewriteRule "^jwt/" "/index.html" [L]
|
||||||
|
|
|
@ -45,7 +45,7 @@ class ConnectionManager {
|
||||||
loginSceneVisibleIframeStore.set(false);
|
loginSceneVisibleIframeStore.set(false);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
const redirectUrl = `${this._currentRoom.iframeAuthentication}?state=${state}&nonce=${nonce}`;
|
const redirectUrl = `${this._currentRoom.iframeAuthentication}?state=${state}&nonce=${nonce}&playUri=${this._currentRoom.key}`;
|
||||||
window.location.assign(redirectUrl);
|
window.location.assign(redirectUrl);
|
||||||
return redirectUrl;
|
return redirectUrl;
|
||||||
}
|
}
|
||||||
|
@ -76,10 +76,9 @@ class ConnectionManager {
|
||||||
this.connexionType = connexionType;
|
this.connexionType = connexionType;
|
||||||
this._currentRoom = null;
|
this._currentRoom = null;
|
||||||
if (connexionType === GameConnexionTypes.login) {
|
if (connexionType === GameConnexionTypes.login) {
|
||||||
//TODO clear all cash and redirect on login scene (iframe)
|
|
||||||
localUserStore.setAuthToken(null);
|
|
||||||
this._currentRoom = await Room.createRoom(new URL(localUserStore.getLastRoomUrl()));
|
this._currentRoom = await Room.createRoom(new URL(localUserStore.getLastRoomUrl()));
|
||||||
urlManager.pushRoomIdToUrl(this._currentRoom);
|
this.loadOpenIDScreen();
|
||||||
|
return Promise.reject(new Error("You will be redirect on login page"));
|
||||||
} else if (connexionType === GameConnexionTypes.jwt) {
|
} else if (connexionType === GameConnexionTypes.jwt) {
|
||||||
const urlParams = new URLSearchParams(window.location.search);
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
const code = urlParams.get("code");
|
const code = urlParams.get("code");
|
||||||
|
@ -91,13 +90,14 @@ class ConnectionManager {
|
||||||
throw "No Auth code provided";
|
throw "No Auth code provided";
|
||||||
}
|
}
|
||||||
localUserStore.setCode(code);
|
localUserStore.setCode(code);
|
||||||
|
this._currentRoom = await Room.createRoom(new URL(localUserStore.getLastRoomUrl()));
|
||||||
try {
|
try {
|
||||||
await this.checkAuthUserConnexion();
|
await this.checkAuthUserConnexion();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
this.loadOpenIDScreen();
|
this.loadOpenIDScreen();
|
||||||
|
return Promise.reject(new Error("You will be redirect on login page"));
|
||||||
}
|
}
|
||||||
this._currentRoom = await Room.createRoom(new URL(localUserStore.getLastRoomUrl()));
|
|
||||||
urlManager.pushRoomIdToUrl(this._currentRoom);
|
urlManager.pushRoomIdToUrl(this._currentRoom);
|
||||||
} else if (connexionType === GameConnexionTypes.register) {
|
} else if (connexionType === GameConnexionTypes.register) {
|
||||||
//@deprecated
|
//@deprecated
|
||||||
|
|
|
@ -1090,7 +1090,7 @@ div.is-silent {
|
||||||
border-radius: 15px 15px 15px 15px;
|
border-radius: 15px 15px 15px 15px;
|
||||||
max-height: 20%;
|
max-height: 20%;
|
||||||
transition: right 350ms;
|
transition: right 350ms;
|
||||||
right: -20vw;
|
right: -300px;
|
||||||
background-color: black;
|
background-color: black;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
color: white;
|
color: white;
|
||||||
|
|
|
@ -27,13 +27,17 @@ export class AuthenticateController extends BaseController {
|
||||||
console.warn("/message request was aborted");
|
console.warn("/message request was aborted");
|
||||||
});
|
});
|
||||||
|
|
||||||
const { nonce, state } = parse(req.getQuery());
|
const { nonce, state, playUri } = parse(req.getQuery());
|
||||||
if (!state || !nonce) {
|
if (!state || !nonce) {
|
||||||
res.writeStatus("400 Unauthorized").end("missing state and nonce URL parameters");
|
res.writeStatus("400 Unauthorized").end("missing state and nonce URL parameters");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const loginUri = await openIDClient.authorizationUrl(state as string, nonce as string);
|
const loginUri = await openIDClient.authorizationUrl(
|
||||||
|
state as string,
|
||||||
|
nonce as string,
|
||||||
|
playUri as string | undefined
|
||||||
|
);
|
||||||
res.writeStatus("302");
|
res.writeStatus("302");
|
||||||
res.writeHeader("Location", loginUri);
|
res.writeHeader("Location", loginUri);
|
||||||
return res.end();
|
return res.end();
|
||||||
|
|
|
@ -20,13 +20,14 @@ class OpenIDClient {
|
||||||
return this.issuerPromise;
|
return this.issuerPromise;
|
||||||
}
|
}
|
||||||
|
|
||||||
public authorizationUrl(state: string, nonce: string) {
|
public authorizationUrl(state: string, nonce: string, playUri?: string) {
|
||||||
return this.initClient().then((client) => {
|
return this.initClient().then((client) => {
|
||||||
return client.authorizationUrl({
|
return client.authorizationUrl({
|
||||||
scope: "openid email",
|
scope: "openid email",
|
||||||
prompt: "login",
|
prompt: "login",
|
||||||
state: state,
|
state: state,
|
||||||
nonce: nonce,
|
nonce: nonce,
|
||||||
|
playUri: playUri,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue