route middleware And Login

This commit is contained in:
saeid_01
2019-04-15 10:40:07 +04:30
parent 9f2acb855c
commit 8986f934a3
11 changed files with 120 additions and 72 deletions
Vendored
+1 -1
View File
@@ -210,7 +210,7 @@ __webpack_require__.r(__webpack_exports__);
exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, "\n.WM-Border[data-v-308d838e] {\r\n border: 1px solid;\n}\n.WM-Border-Black[data-v-308d838e] {\r\n border-color: #2f353b !important;\n}\n.WM-Border-Gray[data-v-308d838e] {\r\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-308d838e] {\r\n background-color : #F5F5F5;\n}\n.WM-Relative[data-v-308d838e] {\r\n position: relative;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-308d838e] {\r\n top: -25px !important;\n}\r\n", ""]);
exports.push([module.i, "\n.WM-Border[data-v-308d838e] {\n border: 1px solid;\n}\n.WM-Border-Black[data-v-308d838e] {\n border-color: #2f353b !important;\n}\n.WM-Border-Gray[data-v-308d838e] {\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-308d838e] {\n background-color : #F5F5F5;\n}\n.WM-Relative[data-v-308d838e] {\n position: relative;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-308d838e] {\n top: -25px !important;\n}\n", ""]);
Vendored
+1 -1
View File
@@ -137,7 +137,7 @@ __webpack_require__.r(__webpack_exports__);
exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, "\n.WM-ActionButton[data-v-1305c16e] {\r\n padding : 8px 22px;\n}\r\n\r\n", ""]);
exports.push([module.i, "\n.WM-ActionButton[data-v-1305c16e] {\n padding : 8px 22px;\n}\n\n", ""]);
Vendored
+1 -1
View File
@@ -423,7 +423,7 @@ __webpack_require__.r(__webpack_exports__);
exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, "\n.WM-Border-Gray[data-v-d05735bc] {\r\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-d05735bc] {\r\n background-color : #F5F5F5;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-d05735bc] {\r\n top: -25px !important;\n}\n.v-btn--bottom.v-btn--absolute.v-btn--small[data-v-d05735bc] {\r\n bottom: -24px !important;\n}\r\n", ""]);
exports.push([module.i, "\n.WM-Border-Gray[data-v-d05735bc] {\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-d05735bc] {\n background-color : #F5F5F5;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-d05735bc] {\n top: -25px !important;\n}\n.v-btn--bottom.v-btn--absolute.v-btn--small[data-v-d05735bc] {\n bottom: -24px !important;\n}\n", ""]);
Vendored
+14 -3
View File
@@ -250,9 +250,20 @@ var render = function() {
[_vm._v("fas fa-plus")]
),
_vm._v(" "),
_c("span", { staticClass: "black--text" }, [
_vm._v("Register")
])
_c(
"span",
[
_c(
"router-link",
{
staticClass: "black--text",
attrs: { to: "register" }
},
[_vm._v("Register")]
)
],
1
)
],
1
)
+59 -39
View File
@@ -2178,6 +2178,7 @@ module.exports = {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/services */ "./resources/js/vue/services/index.js");
//
//
//
@@ -2190,7 +2191,14 @@ __webpack_require__.r(__webpack_exports__);
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({});
/* harmony default export */ __webpack_exports__["default"] = ({
data: function data() {
return {
loggedIn: !!_services__WEBPACK_IMPORTED_MODULE_0__["TokenService"].getToken()
};
}
});
/***/ }),
@@ -2556,12 +2564,8 @@ __webpack_require__.r(__webpack_exports__);
data: function data() {
return {
links: [{
name: 'Home',
Link: '/dashboard'
}, // { name: 'Creative Tim', Link: 'https://www.creative-tim.com' },
{
name: 'About Us',
Link: 'https://creative-tim.com/presentation'
name: 'Powered By',
Link: 'https://www.willamall.com'
}]
};
}
@@ -13467,9 +13471,9 @@ var render = function() {
return _c(
"v-app",
[
_c("core-toolbar"),
_vm.loggedIn ? _c("core-toolbar") : _vm._e(),
_vm._v(" "),
_c("core-drawer"),
_vm.loggedIn ? _c("core-drawer") : _vm._e(),
_vm._v(" "),
_c("core-view")
],
@@ -59027,7 +59031,7 @@ __webpack_require__.r(__webpack_exports__);
Object(vuex_router_sync__WEBPACK_IMPORTED_MODULE_6__["sync"])(_store__WEBPACK_IMPORTED_MODULE_10__["default"], _router__WEBPACK_IMPORTED_MODULE_9__["default"]);
vue__WEBPACK_IMPORTED_MODULE_1___default.a.config.productionTip = false; // Set the base URL of the API
_services__WEBPACK_IMPORTED_MODULE_11__["ApiService"].init("https://www.cssd-doc.com/api/"); // If token exists set header
_services__WEBPACK_IMPORTED_MODULE_11__["ApiService"].init("https://www.cssd-doc.com/api"); // If token exists set header
if (_services__WEBPACK_IMPORTED_MODULE_11__["TokenService"].getToken()) {
_services__WEBPACK_IMPORTED_MODULE_11__["ApiService"].setHeader();
@@ -59194,7 +59198,7 @@ function route(options) {
var path = options.path;
var view = options.view;
var name = options.name;
var meta = path.meta ? path.meta : '';
var meta = options.meta ? options.meta : '';
return {
name: name || view,
path: path,
@@ -59240,31 +59244,36 @@ router.beforeEach(function (to, from, next) {
var onlyWhenLoggedOut = to.matched.some(function (record) {
return record.meta.onlyWhenLoggedOut;
});
var loggedIn = !!_services__WEBPACK_IMPORTED_MODULE_4__["TokenService"].getToken(); // if (!isPublic && !loggedIn) {
// return next({
// path:'/login',
// query: {redirect: to.fullPath} // Store the full path to redirect the user to after login
// });
// }
// Do not allow user to visit login page or register page if they are logged in
// if (loggedIn && onlyWhenLoggedOut) {
// return next('/')
// }
var loggedIn = !!_services__WEBPACK_IMPORTED_MODULE_4__["TokenService"].getToken();
if (!isPublic && !loggedIn) {
return next({
path: '/login',
query: {
redirect: to.fullPath // Store the full path to redirect the user to after login
}
});
} // Do not allow user to visit login page or register page if they are logged in
if (loggedIn && onlyWhenLoggedOut) {
return next('/');
}
next();
}); // Bootstrap Analytics
// Set in .env
// https://github.com/MatteoGabriele/vue-analytics
if (Object({"MIX_APP_ROOT_API":"https://www.cssd-doc.com/api/","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_PUSHER_APP_KEY":"","NODE_ENV":"development"}).GOOGLE_ANALYTICS) {
vue__WEBPACK_IMPORTED_MODULE_0___default.a.use(vue_analytics__WEBPACK_IMPORTED_MODULE_1___default.a, {
id: Object({"MIX_APP_ROOT_API":"https://www.cssd-doc.com/api/","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_PUSHER_APP_KEY":"","NODE_ENV":"development"}).GOOGLE_ANALYTICS,
router: router,
autoTracking: {
page: "development" !== 'development'
}
});
}
// if (process.env.GOOGLE_ANALYTICS) {
// Vue.use(VueAnalytics, {
// id: process.env.GOOGLE_ANALYTICS,
// router,
// autoTracking: {
// page: process.env.NODE_ENV !== 'development'
// }
// })
// }
/* harmony default export */ __webpack_exports__["default"] = (router);
@@ -59320,7 +59329,16 @@ __webpack_require__.r(__webpack_exports__);
}, {
path: '/register',
name: 'Register',
view: 'Register'
view: 'Register',
meta: {
public: true,
// Allow access to even if not logged in
onlyWhenLoggedOut: true
}
}, {
path: '/Adminregister',
name: 'AdminRegister',
view: 'AdminRegister'
}, {
path: '/submit-test-result',
name: 'Submit Test Result',
@@ -59495,7 +59513,8 @@ var TokenService = {
getToken: function getToken() {
return localStorage.getItem(TOKEN_KEY);
},
saveToken: function saveToken(accessToken) {
saveToken: function saveToken() {
var accessToken = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
localStorage.setItem(TOKEN_KEY, accessToken);
},
removeToken: function removeToken() {
@@ -59504,7 +59523,8 @@ var TokenService = {
getRefreshToken: function getRefreshToken() {
return localStorage.getItem(REFRESH_TOKEN_KEY);
},
saveRefreshToken: function saveRefreshToken(refreshToken) {
saveRefreshToken: function saveRefreshToken() {
var refreshToken = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
localStorage.setItem(REFRESH_TOKEN_KEY, refreshToken);
},
removeRefreshToken: function removeRefreshToken() {
@@ -59606,8 +59626,8 @@ var UserService = {
grant_type: 'password'
},
auth: {
username: Object({"MIX_APP_ROOT_API":"https://www.cssd-doc.com/api/","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_PUSHER_APP_KEY":"","NODE_ENV":"development"}).VUE_APP_CLIENT_ID,
password: Object({"MIX_APP_ROOT_API":"https://www.cssd-doc.com/api/","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_PUSHER_APP_KEY":"","NODE_ENV":"development"}).VUE_APP_CLIENT_SECRET
username: Object({"MIX_PUSHER_APP_KEY":"","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_APP_ROOT_API":"https://www.cssd-doc.com/api","NODE_ENV":"development"}).VUE_APP_CLIENT_ID,
password: Object({"MIX_PUSHER_APP_KEY":"","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_APP_ROOT_API":"https://www.cssd-doc.com/api","NODE_ENV":"development"}).VUE_APP_CLIENT_SECRET
}
};
_context.prev = 1;
@@ -59665,8 +59685,8 @@ var UserService = {
refresh_token: refreshToken
},
auth: {
username: Object({"MIX_APP_ROOT_API":"https://www.cssd-doc.com/api/","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_PUSHER_APP_KEY":"","NODE_ENV":"development"}).VUE_APP_CLIENT_ID,
password: Object({"MIX_APP_ROOT_API":"https://www.cssd-doc.com/api/","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_PUSHER_APP_KEY":"","NODE_ENV":"development"}).VUE_APP_CLIENT_SECRET
username: Object({"MIX_PUSHER_APP_KEY":"","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_APP_ROOT_API":"https://www.cssd-doc.com/api","NODE_ENV":"development"}).VUE_APP_CLIENT_ID,
password: Object({"MIX_PUSHER_APP_KEY":"","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_APP_ROOT_API":"https://www.cssd-doc.com/api","NODE_ENV":"development"}).VUE_APP_CLIENT_SECRET
}
};
_context2.prev = 2;
@@ -60297,7 +60317,7 @@ module.exports = webpackAsyncContext;
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(/*! D:\Atom\Git\Laravel_CSSD\resources\js\vue\main.js */"./resources/js/vue/main.js");
module.exports = __webpack_require__(/*! /home/saeid/Projects/Git/CSSD/resources/js/vue/main.js */"./resources/js/vue/main.js");
/***/ })
+9 -2
View File
@@ -2,16 +2,23 @@
<v-app>
<!-- <core-filter /> -->
<core-toolbar />
<core-toolbar v-if="loggedIn" />
<core-drawer />
<core-drawer v-if="loggedIn" />
<core-view />
</v-app>
</template>
<script>
import { TokenService } from '@/services';
export default {
data() {
return {
loggedIn : !!TokenService.getToken(),
};
},
}
</script>
+3 -2
View File
@@ -33,9 +33,10 @@
export default {
data: () => ({
links: [
{ name: 'Home', Link: '/dashboard' },
{ name: 'Powered By', Link: 'https://www.willamall.com' },
// { name: 'Home', Link: '/dashboard' },
// { name: 'Creative Tim', Link: 'https://www.creative-tim.com' },
{ name: 'About Us', Link: 'https://creative-tim.com/presentation' },
// { name: 'About Us', Link: 'https://creative-tim.com/presentation' },
// { name: 'Blog', Link: 'https://blog.creative-tim.com' }
]
})
+19 -19
View File
@@ -20,7 +20,7 @@ function route (options) {
let path = options.path;
let view = options.view;
let name = options.name;
let meta = (path.meta) ? path.meta : '';
let meta = (options.meta) ? options.meta : '';
return {
name: name || view,
path,
@@ -56,17 +56,17 @@ router.beforeEach((to, from, next) => {
const isPublic = to.matched.some(record => record.meta.public);
const onlyWhenLoggedOut = to.matched.some(record => record.meta.onlyWhenLoggedOut);
const loggedIn = !!TokenService.getToken();
// if (!isPublic && !loggedIn) {
// return next({
// path:'/login',
// query: {redirect: to.fullPath} // Store the full path to redirect the user to after login
// });
// }
if (!isPublic && !loggedIn) {
return next({
path:'/login',
query: {redirect: to.fullPath} // Store the full path to redirect the user to after login
});
}
// Do not allow user to visit login page or register page if they are logged in
// if (loggedIn && onlyWhenLoggedOut) {
// return next('/')
// }
if (loggedIn && onlyWhenLoggedOut) {
return next('/')
}
next();
});
@@ -74,14 +74,14 @@ router.beforeEach((to, from, next) => {
// Bootstrap Analytics
// Set in .env
// https://github.com/MatteoGabriele/vue-analytics
if (process.env.GOOGLE_ANALYTICS) {
Vue.use(VueAnalytics, {
id: process.env.GOOGLE_ANALYTICS,
router,
autoTracking: {
page: process.env.NODE_ENV !== 'development'
}
})
}
// if (process.env.GOOGLE_ANALYTICS) {
// Vue.use(VueAnalytics, {
// id: process.env.GOOGLE_ANALYTICS,
// router,
// autoTracking: {
// page: process.env.NODE_ENV !== 'development'
// }
// })
// }
export default router
+10 -1
View File
@@ -46,7 +46,16 @@ export default [
{
path: '/register',
name: 'Register',
view: 'Register'
view: 'Register',
meta: {
public: true, // Allow access to even if not logged in
onlyWhenLoggedOut: true
}
},
{
path: '/Adminregister',
name: 'AdminRegister',
view: 'AdminRegister'
},
{
path: '/submit-test-result',
+2 -2
View File
@@ -12,7 +12,7 @@ const TokenService = {
return localStorage.getItem(TOKEN_KEY)
},
saveToken(accessToken) {
saveToken(accessToken = null) {
localStorage.setItem(TOKEN_KEY, accessToken)
},
@@ -24,7 +24,7 @@ const TokenService = {
return localStorage.getItem(REFRESH_TOKEN_KEY)
},
saveRefreshToken(refreshToken) {
saveRefreshToken(refreshToken = null) {
localStorage.setItem(REFRESH_TOKEN_KEY, refreshToken)
},
+1 -1
View File
@@ -38,7 +38,7 @@
<v-flex xs12 md6 sm6 class="text-md-right text-sm-center text-xs-center">
<v-btn class="WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black">
<v-icon class="black--text mr-2 caption">fas fa-plus</v-icon>
<span class="black--text">Register</span>
<span ><router-link class="black--text" to="register">Register</router-link></span>
</v-btn>
</v-flex>
</v-layout>