From 0fca629c34b83617b2d72e42aa0edb66fd2e71f6 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Fri, 13 Jan 2017 22:51:44 +0800 Subject: Rename common.js to login.js --- public/js/lib/common/login.js | 92 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 public/js/lib/common/login.js (limited to 'public/js/lib/common') diff --git a/public/js/lib/common/login.js b/public/js/lib/common/login.js new file mode 100644 index 00000000..12cc41fc --- /dev/null +++ b/public/js/lib/common/login.js @@ -0,0 +1,92 @@ +import { serverurl } from '../config'; + +let checkAuth = false; +let profile = null; +let lastLoginState = getLoginState(); +let lastUserId = getUserId(); +let loginStateChangeEvent = null; + +export function setloginStateChangeEvent(func) { + loginStateChangeEvent = func; +} + +export function resetCheckAuth() { + checkAuth = false; +} + +export function setLoginState(bool, id) { + Cookies.set('loginstate', bool, { + expires: 365 + }); + if (id) { + Cookies.set('userid', id, { + expires: 365 + }); + } else { + Cookies.remove('userid'); + } + lastLoginState = bool; + lastUserId = id; + checkLoginStateChanged(); +} + +export function checkLoginStateChanged() { + if (getLoginState() != lastLoginState || getUserId() != lastUserId) { + if(loginStateChangeEvent) { + loginStateChangeEvent(); + } + return true; + } else { + return false; + } +} + +export function getLoginState() { + const state = Cookies.get('loginstate'); + return state === "true" || state === true; +} + +export function getUserId() { + return Cookies.get('userid'); +} + +export function clearLoginState() { + Cookies.remove('loginstate'); +} + +export function checkIfAuth(yesCallback, noCallback) { + const cookieLoginState = getLoginState(); + if (checkLoginStateChanged()) + checkAuth = false; + if (!checkAuth || typeof cookieLoginState == 'undefined') { + $.get(`${serverurl}/me`) + .done(data => { + if (data && data.status == 'ok') { + profile = data; + yesCallback(profile); + setLoginState(true, data.id); + } else { + noCallback(); + setLoginState(false); + } + }) + .fail(() => { + noCallback(); + }) + .always(() => { + checkAuth = true; + }); + } else if (cookieLoginState) { + yesCallback(profile); + } else { + noCallback(); + } +} + +export default { + checkAuth, + profile, + lastLoginState, + lastUserId, + loginStateChangeEvent +}; -- cgit v1.3.1 From 04292240d6a589c537afb8e9838dcc0f062d0f2c Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Sat, 14 Jan 2017 15:47:13 +0800 Subject: Minor style update --- .eslintrc | 5 ++--- public/js/lib/common/login.js | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'public/js/lib/common') diff --git a/.eslintrc b/.eslintrc index 53a6dcb0..bd14731c 100644 --- a/.eslintrc +++ b/.eslintrc @@ -16,7 +16,6 @@ ], "array-callback-return": "error", "arrow-body-style": "error", - "arrow-parens": "error", "arrow-spacing": "error", "block-scoped-var": "off", "block-spacing": "error", @@ -123,7 +122,7 @@ "no-extend-native": "error", "no-extra-bind": "error", "no-extra-label": "error", - "no-extra-parens": "error", + "no-extra-parens": "warn", "no-floating-decimal": "error", "no-global-assign": "error", "no-implicit-coercion": "error", @@ -195,7 +194,7 @@ "no-unneeded-ternary": "error", "no-unsafe-negation": "error", "no-unused-expressions": "error", - "no-use-before-define": "error", + "no-use-before-define": "warn", "no-useless-call": "error", "no-useless-computed-key": "error", "no-useless-concat": "error", diff --git a/public/js/lib/common/login.js b/public/js/lib/common/login.js index 12cc41fc..f1a03c72 100644 --- a/public/js/lib/common/login.js +++ b/public/js/lib/common/login.js @@ -32,7 +32,7 @@ export function setLoginState(bool, id) { export function checkLoginStateChanged() { if (getLoginState() != lastLoginState || getUserId() != lastUserId) { - if(loginStateChangeEvent) { + if (loginStateChangeEvent) { loginStateChangeEvent(); } return true; -- cgit v1.3.1