vue-sellsuki-auth-2
Advanced tools
Comparing version 2.1.2 to 2.2.0
119
index.js
@@ -10,9 +10,12 @@ /* global localStorage */ | ||
extend: true, | ||
store: false, | ||
public: [], | ||
authData: { | ||
facebook: '', | ||
facebook: {}, | ||
facebookToken: '', | ||
user: '', | ||
user: {}, | ||
userBearer: '', | ||
userToken: '', | ||
store: {}, | ||
storeBearer: '', | ||
storeToken: '', | ||
sellsukiToken: '', | ||
@@ -28,4 +31,4 @@ storeId: '', | ||
scope.router = options.router ? options.router : {} | ||
scope.store = options.store ? option.store : false | ||
scope.extend = options.extend ? options.extend : true | ||
scope.public = option.public ? scope.public.concat(option.public) : ['prepare-login'] | ||
if (scope.extend) { | ||
@@ -47,9 +50,9 @@ scope.router.addRoutes([{ | ||
scope.router.beforeEach((to, from, next) => { | ||
if (to.name !== 'prepare-login') { | ||
if (scope.public.indexOf(to.name) !== -1) { | ||
// if don't have cookie go redirect. | ||
if (!checkCookie()) { | ||
window.location.href = scope.portal | ||
} else if (!checkStorage()) { | ||
} else if (!checkStorage() && !setupStorage()) { | ||
// if have cookie but dont have local storage set it. | ||
setupStorage() | ||
window.location.href = scope.portal | ||
} else if (scope.authData.status === false) { | ||
@@ -67,3 +70,3 @@ // if have cookie and local storage but dont set to instance set it. | ||
Vue.prototype.$sellsuki_auth.initLocalStorage = (storeId) => { | ||
if (scope.store) { document.cookie = 'sellsuki.storeId=' + storeId } | ||
document.cookie = 'sellsuki.storeId=' + storeId | ||
if (!setupStorage()) { | ||
@@ -111,5 +114,8 @@ window.location.href = scope.portal | ||
localStorage.getItem('sellsuki.user') === null || | ||
localStorage.getItem('sellsuki.bearer') === null || | ||
localStorage.getItem('store.id') === null || | ||
localStorage.getItem('ssk_token') === null) { | ||
localStorage.getItem('sellsuki.user.token') === null || | ||
localStorage.getItem('sellsuki.user.bearer') === null || | ||
localStorage.getItem('sellsuki.store') === null || | ||
localStorage.getItem('sellsuki.store.token') === null || | ||
localStorage.getItem('sellsuki.store.bearer') === null | ||
localStorage.getItem('sellsuki.store.id') === null) { | ||
result = false | ||
@@ -122,7 +128,5 @@ } | ||
let result = true | ||
if (getCookie('sellsuki.facebook') === '' || | ||
getCookie('sellsuki.fblogintoken') === '' || | ||
getCookie('sellsuki.user') === '' || | ||
getCookie('sellsuki.store_' + getCookie('sellsuki.storeId')) === '' || | ||
(scope.store === true && getCookie('sellsuki.storeId') === '')) { | ||
if (getCookie('sellsuki.user') === '' || | ||
(getCookie('sellsuki.storeId')) !== 0 && | ||
getCookie('sellsuki.store_' + getCookie('sellsuki.storeId')) === '')) { | ||
result = false | ||
@@ -140,24 +144,41 @@ } | ||
let storeId = getCookie('sellsuki.storeId') | ||
let storeIdData = getCookie('sellsuki.store_' + storeId) | ||
if (user) { | ||
try { | ||
let storeData = getCookie('sellsuki.store_' + storeId) | ||
try { | ||
// check only user | ||
if (user && parseInt(storeId) === 0) { | ||
let userData = JSON.parse(unescape(user)) | ||
let userBearer = userData.auth.token_type + ' ' + userData.auth.access_token | ||
localStorage.setItem('sellsuki.user', unescape(user)) | ||
localStorage.setItem('sellsuki.user.token', userData.auth.access_token) | ||
localStorage.setItem('sellsuki.user.bearer', userBearer) | ||
localStorage.setItem('sellsuki.facebook', unescape(facebook)) | ||
localStorage.setItem('sellsuki.fblogintoken', unescape(fblogintoken)) | ||
if (facebook && fblogintoken) { | ||
localStorage.setItem('sellsuki.facebook', unescape(facebook)) | ||
localStorage.setItem('sellsuki.fblogintoken', unescape(fblogintoken)) | ||
} | ||
result = true | ||
} else if (user && storeId && storeData){ | ||
// check store and user | ||
let userData = JSON.parse(unescape(user)) | ||
let userBearer = userData.auth.token_type + ' ' + userData.auth.access_token | ||
let store = JSON.parse(unescape(storeData)) | ||
let storeBearer = store.auth.token_type + ' ' + store.auth.access_token | ||
localStorage.setItem('sellsuki.user', unescape(user)) | ||
localStorage.setItem('sellsuki.user.token', userData.auth.access_token) | ||
localStorage.setItem('sellsuki.user.bearer', userBearer) | ||
localStorage.setItem('sellsuki.store', unescape(storeData)) | ||
localStorage.setItem('sellsuki.store.id', storeId) | ||
localStorage.setItem('sellsuki.store.token', store.auth.access_token) | ||
localStorage.setItem('sellsuki.store.bearer', storeBearer) | ||
if (facebook && fblogintoken) { | ||
localStorage.setItem('sellsuki.facebook', unescape(facebook)) | ||
localStorage.setItem('sellsuki.fblogintoken', unescape(fblogintoken)) | ||
} | ||
result = true | ||
if (scope.store && storeIdData) { | ||
let storeData = JSON.parse(unescape(storeIdData)) | ||
let storeBearer = storeData.auth.token_type + ' ' + storeData.auth.access_token | ||
localStorage.setItem('sellsuki.store.bearer', storeBearer) | ||
} else { | ||
result = false | ||
} | ||
} catch (e) { console.log(e) } | ||
} | ||
if (result) { | ||
setupInstanceData() | ||
} | ||
} | ||
if (result) { | ||
setupInstanceData() | ||
} | ||
} catch () { console.log(e) } | ||
return result | ||
@@ -168,10 +189,26 @@ } | ||
function setupInstanceData () { | ||
scope.authData.facebook = JSON.parse(localStorage.getItem('sellsuki.facebook')) | ||
scope.authData.facebookToken = localStorage.getItem('sellsuki.fblogintoken') | ||
scope.authData.user = JSON.parse(localStorage.getItem('sellsuki.user')) | ||
scope.authData.storeBearer = localStorage.getItem('sellsuki.store.bearer') | ||
scope.authData.userBearer = localStorage.getItem('sellsuki.user.bearer') | ||
scope.authData.sellsukiToken = localStorage.getItem('store.id') | ||
scope.authData.storeId = localStorage.getItem('store.id') | ||
scope.authData.status = true | ||
let facebook = localStorage.getItem('sellsuki.facebook') | ||
let user = localStorage.getItem('sellsuki.user') | ||
let store = localStorage.getItem('sellsuki.store') | ||
let storeId = parseInt(localStorage.getItem('sellsuki.store.id')) | ||
if (facebook) { | ||
scope.authData.facebook = JSON.parse(facebook) | ||
scope.authData.facebookToken = localStorage.getItem('sellsuki.fblogintoken') | ||
} | ||
if (storeId !== 0 && store && user) { | ||
scope.authData.user = JSON.parse(user) | ||
scope.authData.userToken = localStorage.getItem('sellsuki.user.token') | ||
scope.authData.userBearer = localStorage.getItem('sellsuki.user.bearer') | ||
scioe.authData.store = JSON.parse(store) | ||
scope.authData.storeId = localStorage.getItem('sellsuki.store.id') | ||
scope.authData.storeToken = localStorage.getItem('sellsuki.store.token') | ||
scope.authData.storeBearer = localStorage.getItem('sellsuki.store.bearer') | ||
scope.authData.status = true | ||
} else if (storeId === 0 && user) { | ||
scope.authData.user = JSON.parse(user) | ||
scope.authData.userToken = localStorage.getItem('sellsuki.user.token') | ||
scope.authData.userBearer = localStorage.getItem('sellsuki.user.bearer') | ||
scope.authData.status = true | ||
} | ||
} | ||
@@ -178,0 +215,0 @@ |
{ | ||
"name": "vue-sellsuki-auth-2", | ||
"version": "2.1.2", | ||
"version": "2.2.0", | ||
"description": "vue-sellsuki-auth new version", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -12,2 +12,7 @@ Sellsuki Auth 2.0 | ||
### Update | ||
* Prepare Login Page and route for Sellsuki Authenticate (2.0) | ||
* Add new option to check only store or bother user and store token (2.1) | ||
* Remove store option and add public option that accept array of public route name to by pass auth middleware (2.2) | ||
## Requirement | ||
@@ -46,7 +51,7 @@ * vue 2.x + | ||
// Set plugin option set store to true if you need to verify store token | ||
// Set plugin option, If you have public route to by pass authentication add the name to public option as array | ||
let options = { | ||
portal: 'loginPortalUrl', | ||
router: router, | ||
store: true // default false | ||
public: ['news', 'register'] | ||
} | ||
@@ -53,0 +58,0 @@ |
11922
205
124