diff options
| author | Shpuld Shpludson <shp@cock.li> | 2019-07-07 18:29:36 +0000 |
|---|---|---|
| committer | Shpuld Shpludson <shp@cock.li> | 2019-07-07 18:29:36 +0000 |
| commit | 171673113fd353666ae9b593abec8f64ec9ea6ef (patch) | |
| tree | 99d61668d54d76a5e97713203b04ec390ef9301b /src/modules/users.js | |
| parent | c8794b2b840e628687342c0fade2da4a9fd2cd12 (diff) | |
| parent | 9fc9925488ecca3c515e97602e479a145d306fc3 (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.js | 37 |
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) => { |
