| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | import { Toast } from "vue-roaster";import io from "../io";// when Vuex needs to interact with socket.ioexport default {	register(user) {		return new Promise((resolve, reject) => {			const { username, email, password, recaptchaToken } = user;			io.getSocket(socket => {				socket.emit(					"users.register",					username,					email,					password,					recaptchaToken,					res => {						if (res.status === "success") {							if (res.SID) {								return lofig.get("cookie", cookie => {									const date = new Date();									date.setTime(										new Date().getTime() +											2 * 365 * 24 * 60 * 60 * 1000									);									const secure = cookie.secure										? "secure=true; "										: "";									document.cookie = `SID=${										res.SID									}; expires=${date.toGMTString()}; domain=${										cookie.domain									}; ${secure}path=/`;									return resolve({ status: "success" });								});							}							return reject(new Error("You must login"));						}						return reject(new Error(res.message));					}				);			});		});	},	login(user) {		return new Promise((resolve, reject) => {			const { email, password } = user;			io.getSocket(socket => {				socket.emit("users.login", email, password, res => {					if (res.status === "success") {						return lofig.get("cookie", cookie => {							const date = new Date();							date.setTime(								new Date().getTime() +									2 * 365 * 24 * 60 * 60 * 1000							);							const secure = cookie.secure ? "secure=true; " : "";							let domain = "";							if (cookie.domain !== "localhost")								domain = ` domain=${cookie.domain};`;							document.cookie = `SID=${								res.SID							}; expires=${date.toGMTString()}; ${domain}${secure}path=/`;							return resolve({ status: "success" });						});					}					return reject(new Error(res.message));				});			});		});	},	logout() {		return new Promise((resolve, reject) => {			io.getSocket(socket => {				socket.emit("users.logout", result => {					if (result.status === "success") {						document.cookie =							"SID=;expires=Thu, 01 Jan 1970 00:00:01 GMT;";						return window.location.reload();					}					Toast.methods.addToast(result.message, 4000);					return reject(new Error(result.message));				});			});		});	}};
 |