aboutsummaryrefslogtreecommitdiff
path: root/src/modules/users.js
diff options
context:
space:
mode:
authorShpuld Shpludson <shp@cock.li>2019-07-07 18:29:36 +0000
committerShpuld Shpludson <shp@cock.li>2019-07-07 18:29:36 +0000
commit171673113fd353666ae9b593abec8f64ec9ea6ef (patch)
tree99d61668d54d76a5e97713203b04ec390ef9301b /src/modules/users.js
parentc8794b2b840e628687342c0fade2da4a9fd2cd12 (diff)
parent9fc9925488ecca3c515e97602e479a145d306fc3 (diff)
Merge branch 'revoke-token' into 'develop'
Revoke oAuth token on logout Closes pleroma#952 See merge request pleroma/pleroma-fe!864
Diffstat (limited to 'src/modules/users.js')
-rw-r--r--src/modules/users.js37
1 files changed, 29 insertions, 8 deletions
diff --git a/src/modules/users.js b/src/modules/users.js
index 1e0b16f5..dd3a8f3c 100644
--- a/src/modules/users.js
+++ b/src/modules/users.js
@@ -1,5 +1,6 @@
import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'
import userSearchApi from '../services/new_api/user_search.js'
+import oauthApi from '../services/new_api/oauth.js'
import { compact, map, each, merge, last, concat, uniq } from 'lodash'
import { set } from 'vue'
import { registerPushNotifications, unregisterPushNotifications } from '../services/push/push.js'
@@ -397,14 +398,34 @@ const users = {
},
logout (store) {
- store.commit('clearCurrentUser')
- store.dispatch('disconnectFromChat')
- store.commit('clearToken')
- store.dispatch('stopFetching', 'friends')
- store.commit('setBackendInteractor', backendInteractorService(store.getters.getToken()))
- store.dispatch('stopFetching', 'notifications')
- store.commit('clearNotifications')
- store.commit('resetStatuses')
+ const { oauth, instance } = store.rootState
+
+ const data = {
+ ...oauth,
+ commit: store.commit,
+ instance: instance.server
+ }
+
+ return oauthApi.getOrCreateApp(data)
+ .then((app) => {
+ const params = {
+ app,
+ instance: data.instance,
+ token: oauth.userToken
+ }
+
+ return oauthApi.revokeToken(params)
+ })
+ .then(() => {
+ store.commit('clearCurrentUser')
+ store.dispatch('disconnectFromChat')
+ store.commit('clearToken')
+ store.dispatch('stopFetching', 'friends')
+ store.commit('setBackendInteractor', backendInteractorService(store.getters.getToken()))
+ store.dispatch('stopFetching', 'notifications')
+ store.commit('clearNotifications')
+ store.commit('resetStatuses')
+ })
},
loginUser (store, accessToken) {
return new Promise((resolve, reject) => {