summary refs log tree commit diff
path: root/synapse/res/templates/saml_error.html
blob: 223d3a74bc8571b2b8627fcdc5c2e22077fd2567 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>SSO error</title>
</head>
<body>
    <p>Oops! Something went wrong during authentication<span id="errormsg"></span>.</p>
    <p>
        If you are seeing this page after clicking a link sent to you via email, make
        sure you only click the confirmation link once, and that you open the
        validation link in the same client you're logging in from.
    </p>
    <p>
        Try logging in again from your Matrix client and if the problem persists
        please contact the server's administrator.
    </p>

    <script type="text/javascript">
        // Error handling to support Auth0 errors that we might get through a GET request
        // to the validation endpoint. If an error is provided, it's either going to be
        // located in the query string or in a query string-like URI fragment.
        // We try to locate the error from any of these two locations, but if we can't
        // we just don't print anything specific.
        let searchStr = "";
        if (window.location.search) {
            // window.location.searchParams isn't always defined when
            // window.location.search is, so it's more reliable to parse the latter.
            searchStr = window.location.search;
        } else if (window.location.hash) {
            // Replace the # with a ? so that URLSearchParams does the right thing and
            // doesn't parse the first parameter incorrectly.
            searchStr = window.location.hash.replace("#", "?");
        }

        // We might end up with no error in the URL, so we need to check if we have one
        // to print one.
        let errorDesc = new URLSearchParams(searchStr).get("error_description")
        if (errorDesc) {
            document.getElementById("errormsg").innerHTML = ` ("${errorDesc}")`;
        }
    </script>
</body>
</html>