aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/client.html40
-rw-r--r--webAO/dom/twofactor.ts11
-rw-r--r--webAO/dom/window.ts1
-rw-r--r--webAO/packets/packets.ts2
-rw-r--r--webAO/styles/client.css11
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;