Add SSO redirect option for login page
Signed-off-by: Bart van der Braak <bartvdbraak@gmail.com>
This commit is contained in:
parent
6c3817fa34
commit
b61d5b4475
2 changed files with 9 additions and 2 deletions
|
@ -250,12 +250,14 @@ When Element is deployed alongside a homeserver with SSO-only login, some option
|
||||||
user can be sent to in order to log them out of that system too, making logout symmetric between Element and the SSO system.
|
user can be sent to in order to log them out of that system too, making logout symmetric between Element and the SSO system.
|
||||||
2. `sso_redirect_options`: Options to define how to handle unauthenticated users. If the object contains `"immediate": true`, then
|
2. `sso_redirect_options`: Options to define how to handle unauthenticated users. If the object contains `"immediate": true`, then
|
||||||
all unauthenticated users will be automatically redirected to the SSO system to start their login. If instead you'd only like to
|
all unauthenticated users will be automatically redirected to the SSO system to start their login. If instead you'd only like to
|
||||||
have users which land on the welcome page to be redirected, use `"on_welcome_page": true`. As an example:
|
have users which land on the welcome page to be redirected, use `"on_welcome_page": true`. Additionally, there is an option to
|
||||||
|
redirect anyone landing on the login page, by using `"on_login_page": true`. As an example:
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"sso_redirect_options": {
|
"sso_redirect_options": {
|
||||||
"immediate": false,
|
"immediate": false,
|
||||||
"on_welcome_page": true
|
"on_welcome_page": true,
|
||||||
|
"on_login_page": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
|
@ -89,9 +89,14 @@ export async function loadApp(fragParams: {}, matrixChatRef: React.Ref<MatrixCha
|
||||||
// XXX: This path matching is a bit brittle, but better to do it early instead of in the app code.
|
// XXX: This path matching is a bit brittle, but better to do it early instead of in the app code.
|
||||||
const isWelcomeOrLanding =
|
const isWelcomeOrLanding =
|
||||||
window.location.hash === "#/welcome" || window.location.hash === "#" || window.location.hash === "";
|
window.location.hash === "#/welcome" || window.location.hash === "#" || window.location.hash === "";
|
||||||
|
const isLoginPage = window.location.hash === "#/login";
|
||||||
|
|
||||||
if (!autoRedirect && ssoRedirects.on_welcome_page && isWelcomeOrLanding) {
|
if (!autoRedirect && ssoRedirects.on_welcome_page && isWelcomeOrLanding) {
|
||||||
autoRedirect = true;
|
autoRedirect = true;
|
||||||
}
|
}
|
||||||
|
if (!autoRedirect && ssoRedirects.on_login_page && isLoginPage) {
|
||||||
|
autoRedirect = true;
|
||||||
|
}
|
||||||
if (!hasPossibleToken && !isReturningFromSso && autoRedirect) {
|
if (!hasPossibleToken && !isReturningFromSso && autoRedirect) {
|
||||||
logger.log("Bypassing app load to redirect to SSO");
|
logger.log("Bypassing app load to redirect to SSO");
|
||||||
const tempCli = createClient({
|
const tempCli = createClient({
|
||||||
|
|
Loading…
Reference in a new issue