feat: add basic local login handler in dev cli
This commit is contained in:
@ -1,9 +1,10 @@
|
||||
import { EventTarget } from "./event-target";
|
||||
import { messageFrom,Message, TypeMessage } from "./message";
|
||||
import { messageFrom, Message, TypeMessage } from "./message";
|
||||
import { RPCError } from "./rpc-error";
|
||||
import SockJS from 'sockjs-client';
|
||||
|
||||
const EventTypeMessage = "message";
|
||||
const EdgeAuth = "edge-auth"
|
||||
|
||||
export class Client extends EventTarget {
|
||||
|
||||
@ -35,12 +36,16 @@ export class Client extends EventTarget {
|
||||
this.send = this.send.bind(this);
|
||||
this.upload = this.upload.bind(this);
|
||||
|
||||
this.addEventListener("message", this._handleRPCResponse);
|
||||
this.addEventListener(EventTypeMessage, this._handleRPCResponse);
|
||||
}
|
||||
|
||||
connect(token = "") {
|
||||
return new Promise((resolve, reject) => {
|
||||
const url = `//${document.location.host}/edge/sock?token=${token}`;
|
||||
if (token == "") {
|
||||
token = this._getAuthCookieToken()
|
||||
}
|
||||
|
||||
const url = `//${document.location.host}/edge/sock?${EdgeAuth}=${token}`;
|
||||
this._log("opening connection to", url);
|
||||
const conn: any = new SockJS(url);
|
||||
|
||||
@ -79,6 +84,17 @@ export class Client extends EventTarget {
|
||||
this._cleanupConnection();
|
||||
}
|
||||
|
||||
_getAuthCookieToken() {
|
||||
const cookie = document.cookie.split("; ")
|
||||
.find((row) => row.startsWith(EdgeAuth));
|
||||
|
||||
if (cookie) {
|
||||
return cookie.split("=")[1];
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
_onConnectionMessage(evt) {
|
||||
const rawMessage = JSON.parse(evt.data);
|
||||
const message = messageFrom(rawMessage);
|
||||
@ -179,7 +195,7 @@ export class Client extends EventTarget {
|
||||
}
|
||||
|
||||
send(data) {
|
||||
const msg = new Message("message", data);
|
||||
const msg = new Message(TypeMessage, data);
|
||||
this._sendOrQueue(msg);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user