logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe
commit: 5a8f3dddfde863a87a3a4f0ed9c7433935520c59
parent: 03a27c6d4864758d72f127138fa21961ef2b61fa
Author: HJ <30-hj@users.noreply.git.pleroma.social>
Date:   Sat, 22 Jun 2019 07:47:30 +0000

Merge branch 'fix-token-auth-login' into 'develop'

Fix broken token authentication

See merge request pleroma/pleroma-fe!846

Diffstat:

Msrc/components/login_form/login_form.js3++-
Msrc/components/oauth_callback/oauth_callback.js3++-
Msrc/lib/persisted_state.js3++-
Msrc/modules/chat.js2+-
Msrc/modules/oauth.js8++++++++
Msrc/modules/users.js2+-
6 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/components/login_form/login_form.js b/src/components/login_form/login_form.js @@ -26,9 +26,10 @@ const LoginForm = { this.isTokenAuth ? this.submitToken() : this.submitPassword() }, submitToken () { - const { clientId } = this.oauth + const { clientId, clientSecret } = this.oauth const data = { clientId, + clientSecret, instance: this.instance.server, commit: this.$store.commit } diff --git a/src/components/oauth_callback/oauth_callback.js b/src/components/oauth_callback/oauth_callback.js @@ -4,10 +4,11 @@ const oac = { props: ['code'], mounted () { if (this.code) { - const { clientId } = this.$store.state.oauth + const { clientId, clientSecret } = this.$store.state.oauth oauth.getToken({ clientId, + clientSecret, instance: this.$store.state.instance.server, code: this.code }).then((result) => { diff --git a/src/lib/persisted_state.js b/src/lib/persisted_state.js @@ -19,7 +19,8 @@ const saveImmedeatelyActions = [ 'setHighlight', 'setOption', 'setClientData', - 'setToken' + 'setToken', + 'clearToken' ] const defaultStorage = (() => { diff --git a/src/modules/chat.js b/src/modules/chat.js @@ -21,7 +21,7 @@ const chat = { }, actions: { disconnectFromChat (store) { - store.state.socket.disconnect() + store.state.socket && store.state.socket.disconnect() }, initializeChat (store, socket) { const channel = socket.channel('chat:public') diff --git a/src/modules/oauth.js b/src/modules/oauth.js @@ -1,3 +1,5 @@ +import { delete as del } from 'vue' + const oauth = { state: { clientId: false, @@ -22,6 +24,12 @@ const oauth = { }, setToken (state, token) { state.userToken = token + }, + clearToken (state) { + state.userToken = false + // state.token is userToken with older name, coming from persistent state + // let's clear it as well, since it is being used as a fallback of state.userToken + del(state, 'token') } }, getters: { diff --git a/src/modules/users.js b/src/modules/users.js @@ -399,7 +399,7 @@ const users = { logout (store) { store.commit('clearCurrentUser') store.dispatch('disconnectFromChat') - store.commit('setToken', false) + store.commit('clearToken') store.dispatch('stopFetching', 'friends') store.commit('setBackendInteractor', backendInteractorService(store.getters.getToken())) store.dispatch('stopFetching', 'notifications')