Logout Changes #9915 (#10022)

* Added session check before route changes, but express isn't finding route

* Added a logout component. Changed route to logout on server. Typing 'logout' in URL will logout of Vue + Express

* Removed commented text from previous version

* Updated logout function to comply with formatting and eliminate unused blocks

* Added package-lock.json back

* package-lock.json

* recreated package-lock file

* fix(auth): allow logout from direct visit to /logout path

* fix(merge): clean up more misc changes

* fix(merge): remove extra file
This commit is contained in:
Jim Pollaro
2018-07-12 15:07:08 -05:00
committed by Sabe Jones
parent f810fff6fc
commit c9755bee7c
5 changed files with 19 additions and 4 deletions

View File

@@ -62,7 +62,7 @@ module.exports = {
target: DEV_BASE_URL, target: DEV_BASE_URL,
changeOrigin: true, changeOrigin: true,
}, },
'/logout': { '/logout-server': {
target: DEV_BASE_URL, target: DEV_BASE_URL,
changeOrigin: true, changeOrigin: true,
}, },

View File

@@ -0,0 +1,13 @@
<script>
export default {
components: {},
methods: {
async logout () {
return await this.$store.dispatch('auth:logout');
},
},
created () {
this.logout();
},
};
</script>

View File

@@ -27,6 +27,7 @@ const PrivacyPage = () => import(/* webpackChunkName: "static" */'./components/s
const TermsPage = () => import(/* webpackChunkName: "static" */'./components/static/terms'); const TermsPage = () => import(/* webpackChunkName: "static" */'./components/static/terms');
const RegisterLoginReset = () => import(/* webpackChunkName: "auth" */'./components/auth/registerLoginReset'); const RegisterLoginReset = () => import(/* webpackChunkName: "auth" */'./components/auth/registerLoginReset');
const Logout = () => import(/* webpackChunkName: "auth" */'./components/auth/logout');
// User Pages // User Pages
// const StatsPage = () => import(/* webpackChunkName: "user" */'./components/userMenu/stats'); // const StatsPage = () => import(/* webpackChunkName: "user" */'./components/userMenu/stats');
@@ -105,6 +106,7 @@ const router = new VueRouter({
routes: [ routes: [
{ name: 'register', path: '/register', component: RegisterLoginReset, meta: {requiresLogin: false} }, { name: 'register', path: '/register', component: RegisterLoginReset, meta: {requiresLogin: false} },
{ name: 'login', path: '/login', component: RegisterLoginReset, meta: {requiresLogin: false} }, { name: 'login', path: '/login', component: RegisterLoginReset, meta: {requiresLogin: false} },
{ name: 'logout', path: '/logout', component: Logout },
{ name: 'resetPassword', path: '/reset-password', component: RegisterLoginReset, meta: {requiresLogin: false} }, { name: 'resetPassword', path: '/reset-password', component: RegisterLoginReset, meta: {requiresLogin: false} },
{ name: 'tasks', path: '/', component: UserTasks }, { name: 'tasks', path: '/', component: UserTasks },
{ {

View File

@@ -68,5 +68,5 @@ export async function socialAuth (store, params) {
export function logout () { export function logout () {
localStorage.removeItem(LOCALSTORAGE_AUTH_KEY); localStorage.removeItem(LOCALSTORAGE_AUTH_KEY);
localStorage.removeItem(LOCALSTORAGE_SOCIAL_AUTH_KEY); localStorage.removeItem(LOCALSTORAGE_SOCIAL_AUTH_KEY);
window.location.href = '/logout'; window.location.href = '/logout-server';
} }

View File

@@ -24,7 +24,7 @@ api.resetPasswordSetNewOne = {
// Logout the user from the website. // Logout the user from the website.
api.logout = { api.logout = {
method: 'GET', method: 'GET',
url: '/logout', url: '/logout-server',
async handler (req, res) { async handler (req, res) {
if (req.logout) req.logout(); // passportjs method if (req.logout) req.logout(); // passportjs method
req.session = null; req.session = null;