mirror of https://github.com/Chocobozzz/PeerTube
Fix external on logout hook
parent
c2bd7a6fcf
commit
97aeb3cc46
|
@ -88,7 +88,7 @@ async function handleToken (req: express.Request, res: express.Response, next: e
|
||||||
async function handleTokenRevocation (req: express.Request, res: express.Response) {
|
async function handleTokenRevocation (req: express.Request, res: express.Response) {
|
||||||
const token = res.locals.oauth.token
|
const token = res.locals.oauth.token
|
||||||
|
|
||||||
const result = await revokeToken(token, true)
|
const result = await revokeToken(token, { req, explicitLogout: true })
|
||||||
|
|
||||||
return res.json(result)
|
return res.json(result)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import * as express from 'express'
|
||||||
import { AccessDeniedError } from 'oauth2-server'
|
import { AccessDeniedError } from 'oauth2-server'
|
||||||
import { PluginManager } from '@server/lib/plugins/plugin-manager'
|
import { PluginManager } from '@server/lib/plugins/plugin-manager'
|
||||||
import { ActorModel } from '@server/models/activitypub/actor'
|
import { ActorModel } from '@server/models/activitypub/actor'
|
||||||
|
@ -125,15 +126,20 @@ async function getUser (usernameOrEmail?: string, password?: string, bypassLogin
|
||||||
|
|
||||||
async function revokeToken (
|
async function revokeToken (
|
||||||
tokenInfo: { refreshToken: string },
|
tokenInfo: { refreshToken: string },
|
||||||
explicitLogout?: boolean
|
options: {
|
||||||
|
req?: express.Request
|
||||||
|
explicitLogout?: boolean
|
||||||
|
} = {}
|
||||||
): Promise<{ success: boolean, redirectUrl?: string }> {
|
): Promise<{ success: boolean, redirectUrl?: string }> {
|
||||||
|
const { req, explicitLogout } = options
|
||||||
|
|
||||||
const token = await OAuthTokenModel.getByRefreshTokenAndPopulateUser(tokenInfo.refreshToken)
|
const token = await OAuthTokenModel.getByRefreshTokenAndPopulateUser(tokenInfo.refreshToken)
|
||||||
|
|
||||||
if (token) {
|
if (token) {
|
||||||
let redirectUrl: string
|
let redirectUrl: string
|
||||||
|
|
||||||
if (explicitLogout === true && token.User.pluginAuth && token.authName) {
|
if (explicitLogout === true && token.User.pluginAuth && token.authName) {
|
||||||
redirectUrl = await PluginManager.Instance.onLogout(token.User.pluginAuth, token.authName, token.User, this.request)
|
redirectUrl = await PluginManager.Instance.onLogout(token.User.pluginAuth, token.authName, token.User, req)
|
||||||
}
|
}
|
||||||
|
|
||||||
TokensCache.Instance.clearCacheByToken(token.accessToken)
|
TokensCache.Instance.clearCacheByToken(token.accessToken)
|
||||||
|
|
Loading…
Reference in New Issue