Login from game
This commit is contained in:
parent
33b47dcb67
commit
edd632fd76
3 changed files with 41 additions and 20 deletions
|
|
@ -3,13 +3,19 @@ const baseApiPath = "http://localhost:3000"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
async post(path: string, data: any) {
|
async post(path: string, data: any) {
|
||||||
|
const headers = {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
|
||||||
|
if (window.myStuff.token) {
|
||||||
|
headers['Authorization'] = `Bearer ${window.myStuff.token}`
|
||||||
|
}
|
||||||
|
|
||||||
let response;
|
let response;
|
||||||
try {
|
try {
|
||||||
response = await fetch(`${baseApiPath}/${path}`, {
|
response = await fetch(`${baseApiPath}/${path}`, {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: {
|
headers,
|
||||||
'Content-Type': 'application/json'
|
|
||||||
},
|
|
||||||
body: JSON.stringify(data)
|
body: JSON.stringify(data)
|
||||||
})
|
})
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
@ -21,5 +27,9 @@ export default {
|
||||||
|
|
||||||
async signup(name: string) {
|
async signup(name: string) {
|
||||||
return this.post("signup", { name })
|
return this.post("signup", { name })
|
||||||
|
},
|
||||||
|
|
||||||
|
async login(password: string) {
|
||||||
|
return this.post("login", { password })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,8 @@ declare global {
|
||||||
myStuff: {
|
myStuff: {
|
||||||
name?: String | null,
|
name?: String | null,
|
||||||
token?: String | null,
|
token?: String | null,
|
||||||
password?: String | null,
|
key?: String | null,
|
||||||
|
record?: String | null,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -25,18 +26,28 @@ declare global {
|
||||||
key: document.getElementById("key"),
|
key: document.getElementById("key"),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function readDataFromToken(token) {
|
||||||
|
return JSON.parse(
|
||||||
|
atob(token.split('.')[1])
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
function checkIfLogged() {
|
function checkIfLogged() {
|
||||||
const token = localStorage.getItem("token")
|
const token = localStorage.getItem("token")
|
||||||
const name = localStorage.getItem("name")
|
const key = localStorage.getItem("key")
|
||||||
|
|
||||||
if (token !== null) {
|
if (token !== null) {
|
||||||
|
const data = readDataFromToken(token)
|
||||||
|
|
||||||
window.myStuff.token = token
|
window.myStuff.token = token
|
||||||
window.myStuff.name = name
|
window.myStuff.name = data.name
|
||||||
console.log("my stuff", window.myStuff)
|
window.myStuff.record = data.record
|
||||||
|
window.myStuff.key = key
|
||||||
|
|
||||||
elements.bar.logged!.style.display = ""
|
elements.bar.logged!.style.display = ""
|
||||||
elements.bar.loggedout!.style.display = "none"
|
elements.bar.loggedout!.style.display = "none"
|
||||||
elements.name!.innerText = name!;
|
elements.name!.innerText = data.name!;
|
||||||
elements.key!.innerText = token!;
|
elements.key!.innerText = key!;
|
||||||
} else {
|
} else {
|
||||||
console.log("not logged in")
|
console.log("not logged in")
|
||||||
elements.bar.logged!.style.display = "none"
|
elements.bar.logged!.style.display = "none"
|
||||||
|
|
@ -44,7 +55,7 @@ declare global {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function loginByKey() {
|
async function login() {
|
||||||
const key = prompt("Type in the #key")
|
const key = prompt("Type in the #key")
|
||||||
|
|
||||||
if (!key) {
|
if (!key) {
|
||||||
|
|
@ -52,22 +63,20 @@ declare global {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: fetch data from server
|
const response = await API.login(key)
|
||||||
const response = {
|
|
||||||
token: Math.random().toString() + '.abc',
|
|
||||||
name: 'Hagis'
|
|
||||||
}
|
|
||||||
|
|
||||||
localStorage.setItem('token', response.token)
|
localStorage.setItem('token', response.token)
|
||||||
localStorage.setItem('name', response.name)
|
localStorage.setItem('key', response.password)
|
||||||
|
|
||||||
window.myStuff.token = response.token
|
window.myStuff.token = response.token
|
||||||
window.myStuff.name = response.name
|
window.myStuff.name = response.name
|
||||||
|
window.myStuff.record = response.record
|
||||||
|
window.myStuff.key = response.password
|
||||||
|
|
||||||
elements.bar.logged!.style.display = ''
|
elements.bar.logged!.style.display = ''
|
||||||
elements.bar.loggedout!.style.display = 'none'
|
elements.bar.loggedout!.style.display = 'none'
|
||||||
elements.name!.innerText = response.name
|
elements.name!.innerText = response.name
|
||||||
elements.key!.innerText = response.token
|
elements.key!.innerText = response.password
|
||||||
}
|
}
|
||||||
|
|
||||||
async function signup() {
|
async function signup() {
|
||||||
|
|
@ -81,10 +90,12 @@ declare global {
|
||||||
const response = await API.signup(nickname)
|
const response = await API.signup(nickname)
|
||||||
|
|
||||||
localStorage.setItem('token', response.token)
|
localStorage.setItem('token', response.token)
|
||||||
|
localStorage.setItem('key', response.password)
|
||||||
|
|
||||||
window.myStuff.token = response.token
|
window.myStuff.token = response.token
|
||||||
window.myStuff.name = response.name
|
window.myStuff.name = response.name
|
||||||
window.myStuff.password = response.password
|
window.myStuff.key = response.password
|
||||||
|
window.myStuff.record = response.record
|
||||||
|
|
||||||
elements.bar.logged!.style.display = ''
|
elements.bar.logged!.style.display = ''
|
||||||
elements.bar.loggedout!.style.display = 'none'
|
elements.bar.loggedout!.style.display = 'none'
|
||||||
|
|
@ -112,7 +123,7 @@ declare global {
|
||||||
function setup() {
|
function setup() {
|
||||||
window.myStuff = {}
|
window.myStuff = {}
|
||||||
|
|
||||||
elements.buttons.login!.addEventListener("click", loginByKey)
|
elements.buttons.login!.addEventListener("click", login)
|
||||||
elements.buttons.logout!.addEventListener("click", logout)
|
elements.buttons.logout!.addEventListener("click", logout)
|
||||||
elements.buttons.signup!.addEventListener("click", signup)
|
elements.buttons.signup!.addEventListener("click", signup)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
<div class="bar">
|
<div class="bar">
|
||||||
<div id="loggedbar" class="logged-in" style="display: none">
|
<div id="loggedbar" class="logged-in" style="display: none">
|
||||||
Logged in as <span id="name">username</span>
|
Logged in as <span id="name">username</span>
|
||||||
<span id="key" class="key">#asdasdasdasd</span>
|
key (#<span id="key" class="key">#asdasdasdasd</span>)
|
||||||
<button id="logout">Log out</button>
|
<button id="logout">Log out</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="loggedoutbar" class="logged-out" style="display: none">
|
<div id="loggedoutbar" class="logged-out" style="display: none">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue