cookie management - stay logged in
This commit is contained in:
parent
8dbe826457
commit
0dbb060cf0
@ -36,11 +36,4 @@ export default {
|
|||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
white-space: pre-line;
|
white-space: pre-line;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 45rem){
|
|
||||||
.message{
|
|
||||||
margin-left: 0; margin-right: auto;
|
|
||||||
border-radius: 1rem 1rem 1rem 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
@ -1,15 +1,39 @@
|
|||||||
import matrix from 'matrix-js-sdk';
|
import matrix from 'matrix-js-sdk';
|
||||||
import main from '@/main.js';
|
import main from '@/main.js';
|
||||||
const matrix_cli = matrix.createClient("https://adb.sh");
|
//import Vue from 'vue';
|
||||||
|
|
||||||
|
var matrix_cli = matrix.createClient({
|
||||||
|
baseUrl: "https://adb.sh",
|
||||||
|
accessToken: getCookie("accessToken"),
|
||||||
|
userId: getCookie("userId")
|
||||||
|
})
|
||||||
let session = {
|
let session = {
|
||||||
user: "",
|
user: "",
|
||||||
password: "",
|
password: "",
|
||||||
access_token: "",
|
accessToken: "",
|
||||||
rooms: [],
|
rooms: [],
|
||||||
currentRoom: undefined
|
currentRoom: undefined
|
||||||
};
|
};
|
||||||
|
|
||||||
|
console.log(document.cookie)
|
||||||
|
|
||||||
|
if (getCookie("accessToken") && getCookie("userId")){
|
||||||
|
session = {
|
||||||
|
user: getCookie("userId"),
|
||||||
|
password: "",
|
||||||
|
accessToken: getCookie("accessToken"),
|
||||||
|
rooms: [],
|
||||||
|
currentRoom: undefined
|
||||||
|
};
|
||||||
|
//Vue.$router.push("/rooms/")
|
||||||
|
window.location.href = '/#/rooms/';
|
||||||
|
matrix_cli.startClient();
|
||||||
|
matrix_cli.once('sync', function (state){
|
||||||
|
console.log(state)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
else window.location.href = '/#/login';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data(){
|
data(){
|
||||||
return {
|
return {
|
||||||
@ -18,19 +42,30 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
login(){
|
login(){
|
||||||
|
if (session.accessToken !== ""){
|
||||||
|
main.methods.error("you are already logged in")
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
matrix_cli = matrix.createClient("https://adb.sh");
|
||||||
matrix_cli.login("m.login.password", {
|
matrix_cli.login("m.login.password", {
|
||||||
user: session.user,
|
user: session.user,
|
||||||
password: session.password,
|
password: session.password,
|
||||||
initial_device_display_name: "matrix chat",
|
initial_device_display_name: "matrix chat",
|
||||||
}).then((response) => {
|
}).then((response) => {
|
||||||
|
document.cookie = `accessToken=${response.access_token}`;
|
||||||
|
document.cookie = `userId=${session.user}`;
|
||||||
|
session = {
|
||||||
|
password: "",
|
||||||
|
accessToken: response.access_token,
|
||||||
|
rooms: [],
|
||||||
|
currentRoom: undefined
|
||||||
|
};
|
||||||
console.log(`access token => ${response.access_token}`);
|
console.log(`access token => ${response.access_token}`);
|
||||||
session.access_token = response.access_token
|
|
||||||
document.cookie = `access_token=${session.access_token}; user=${session.user};`;
|
|
||||||
if (response.error){
|
if (response.error){
|
||||||
main.methods.error(response.error)
|
main.methods.error(response.error)
|
||||||
console.log(`login error => ${response.error}`)
|
console.log(`login error => ${response.error}`)
|
||||||
}
|
}
|
||||||
main.methods.router({path: "rooms/"})
|
window.location.href = '/#/rooms/';
|
||||||
matrix_cli.startClient();
|
matrix_cli.startClient();
|
||||||
matrix_cli.once('sync', function (state){
|
matrix_cli.once('sync', function (state){
|
||||||
console.log(state)
|
console.log(state)
|
||||||
@ -40,6 +75,13 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getCookie(key) {
|
||||||
|
let cookie = document.cookie.replace(/ /g, '').split(';')
|
||||||
|
.find(cookie => cookie.split('=')[0] === key);
|
||||||
|
if (cookie) return cookie.split('=')[1];
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
matrix_cli.on("event", event => {
|
matrix_cli.on("event", event => {
|
||||||
console.log(event.getType());
|
console.log(event.getType());
|
||||||
console.log(event);
|
console.log(event);
|
||||||
@ -67,18 +109,3 @@ matrix_cli.on("Room.timeline", event => {
|
|||||||
}
|
}
|
||||||
else room.messages.push(event.event)
|
else room.messages.push(event.event)
|
||||||
});
|
});
|
||||||
/*
|
|
||||||
if (getCookie("access_token")){
|
|
||||||
|
|
||||||
main.methods.router({path: "rooms/"})
|
|
||||||
}
|
|
||||||
else main.methods.router({path: "login"})
|
|
||||||
*/
|
|
||||||
/*function getCookie(key){
|
|
||||||
let cookies = document.cookie.split(';');
|
|
||||||
cookies.forEach(cookie => {
|
|
||||||
if (cookie.split('=')[0] === key)
|
|
||||||
return cookie.split('=')[1];
|
|
||||||
})
|
|
||||||
return false;
|
|
||||||
}*/
|
|
@ -2,7 +2,7 @@
|
|||||||
<div id="login">
|
<div id="login">
|
||||||
<h1 class="title">[chat]</h1>
|
<h1 class="title">[chat]</h1>
|
||||||
<form @submit.prevent="login()">
|
<form @submit.prevent="login()">
|
||||||
<input v-model="session.user" class="input" name="user" type="text" maxlength="30" placeholder="username"><br>
|
<input v-model="session.user" class="input" name="user" type="text" maxlength="30" placeholder="@user:adb.sh"><br>
|
||||||
<input v-model="session.password" class="input" name="password" type="password" maxlength="30" placeholder="password"><br>
|
<input v-model="session.password" class="input" name="password" type="password" maxlength="30" placeholder="password"><br>
|
||||||
<textbtn type="submit" text="login" />
|
<textbtn type="submit" text="login" />
|
||||||
</form>
|
</form>
|
||||||
|
Loading…
Reference in New Issue
Block a user