diff options
| -rw-r--r-- | public/client.html | 40 | ||||
| -rw-r--r-- | webAO/dom/twofactor.ts | 11 | ||||
| -rw-r--r-- | webAO/dom/window.ts | 1 | ||||
| -rw-r--r-- | webAO/packets/packets.ts | 2 | ||||
| -rw-r--r-- | webAO/styles/client.css | 11 |
5 files changed, 56 insertions, 9 deletions
diff --git a/public/client.html b/public/client.html index 88d446c..f65ed9e 100644 --- a/public/client.html +++ b/public/client.html @@ -20,13 +20,14 @@ <meta property="twitter:url" content="http://web.aceattorneyonline.com/"> <meta property="twitter:image" content="https://repository-images.githubusercontent.com/78860508/89fcba80-aafd-11e9-80db-c5b10c01aba9"> - <meta http-equiv="Content-Security-Policy" content="script-src-elem 'self' 'unsafe-inline' https://ajax.googleapis.com; - style-src-elem 'self' 'unsafe-inline' https://golden-layout.com; - script-src 'self' 'unsafe-inline' 'unsafe-eval' https://ajax.googleapis.com; - style-src 'self' 'unsafe-inline' https://golden-layout.com; - img-src 'self' data: file: *; - connect-src 'self' ws: file: *; - media-src 'self' file: *;"> + <meta http-equiv="Content-Security-Policy" content=" + script-src-elem 'self' 'unsafe-inline' https://ajax.googleapis.com https://accounts.google.com/gsi/client; + style-src-elem 'self' 'unsafe-inline' https://golden-layout.com https://accounts.google.com/gsi/style; + script-src 'self' 'unsafe-inline' 'unsafe-eval' https://ajax.googleapis.com https://accounts.google.com/gsi/client; + style-src 'self' 'unsafe-inline' https://golden-layout.com https://accounts.google.com/gsi/style; + img-src 'self' data: file: *; + connect-src 'self' ws: file: *; + media-src 'self' file: *;"> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> <link rel="apple-touch-icon" href="logo-new.png"/> @@ -38,8 +39,8 @@ <link type="text/css" rel="stylesheet" href="golden/css/goldenlayout.css" /> <link type="text/css" rel="stylesheet" href="https://golden-layout.com/files/latest/css/goldenlayout-dark-theme.css" /> - - <script src="lib/jdataview.min.js"></script> + <script src="https://accounts.google.com/gsi/client" async defer></script> + <script src="lib/jdataview.min.js" async defer></script> </head> <body> @@ -49,6 +50,27 @@ <h1 id="client_loadingtext">Loading</h1> <progress id="client_loadingbar" value="0"></progress> </div> + <div id="client_secondfactor" style="display: none"> + <center> + <p>You need to authorize to continue</p> + <div id="g_id_onload" + data-client_id="107239014890-eo1vg90jdn2l7fgudsp9mdk8c1nraq0g" + data-context="use" + data-ux_mode="popup" + data-callback="handleCredentialResponse" + data-nonce="" + data-auto_select="true"> + </div> + <div class="g_id_signin" + data-type="standard" + data-shape="rectangular" + data-theme="outline" + data-text="continue_with" + data-size="large" + data-logo_alignment="left"> + </div> + </center> + </div> <div id="client_charselect"> <p>Choose your character</p> <button onclick="pickChar(-1)">Or spectate</button> diff --git a/webAO/dom/twofactor.ts b/webAO/dom/twofactor.ts new file mode 100644 index 0000000..38a2bac --- /dev/null +++ b/webAO/dom/twofactor.ts @@ -0,0 +1,11 @@ +import { client } from "../client"; + +function handleCredentialResponse(response: any) { + console.log(response); + client.sender.sendServer(`2T#${response.credential}#%`); + } +window.handleCredentialResponse = handleCredentialResponse; + +export function showFactorDialog() { + document.getElementById("client_secondfactor").style.display = "block"; +}
\ No newline at end of file diff --git a/webAO/dom/window.ts b/webAO/dom/window.ts index 2535768..956526c 100644 --- a/webAO/dom/window.ts +++ b/webAO/dom/window.ts @@ -51,6 +51,7 @@ declare global { onEnter: (event: any) => void; onReplayGo: (_event: any) => void; onOOCEnter: (_event: any) => void; + handleCredentialResponse: (_event: any) => void; } } export { }
\ No newline at end of file diff --git a/webAO/packets/packets.ts b/webAO/packets/packets.ts index 79c43c1..c9d0bb8 100644 --- a/webAO/packets/packets.ts +++ b/webAO/packets/packets.ts @@ -2,6 +2,7 @@ import { handleMS } from './handlers/handleMS'; import { handleCT } from './handlers/handleCT' import { handleMC } from './handlers/handleMC' import { handleRMC } from './handlers/handleRMC' +import { showFactorDialog } from '../dom/twofactor' import { handleFL } from './handlers/handleFL' import { handleLE } from './handlers/handleLE' import { handleEM } from './handlers/handleEM' @@ -47,6 +48,7 @@ export const packets = { "CI": handleCI, "SC": handleSC, "EI": handleEI, + "2A": showFactorDialog, "FL": handleFL, "LE": handleLE, "EM": handleEM, diff --git a/webAO/styles/client.css b/webAO/styles/client.css index 8c7898b..31bc64b 100644 --- a/webAO/styles/client.css +++ b/webAO/styles/client.css @@ -75,6 +75,17 @@ animation: error_blink 3s ease-in-out infinite; } +#client_secondfactor { + display: block; + flex-direction: column; + justify-content: center; + text-align: center; + align-items: center; + background: black; + color: lightgreen; + font-size: large; +} + #client_waiting { display: block; flex-direction: column; |
