@uppy/companion
Version:
OAuth helper and remote fetcher for Uppy's (https://uppy.io) extensible file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Dropbox and Google Drive, S3 and more :dog:
38 lines (37 loc) • 1.05 kB
JavaScript
import * as tokenService from '../helpers/jwt.js';
import { respondWithError } from '../provider/error.js';
/**
*
* @param {object} req
* @param {object} res
*/
export default async function logout(req, res, next) {
const cleanSession = () => {
if (req.session.grant) {
req.session.grant.state = null;
req.session.grant.dynamic = null;
}
};
const { companion } = req;
const { providerUserSession } = companion;
if (!providerUserSession) {
cleanSession();
res.json({ ok: true, revoked: false });
return;
}
try {
const data = await companion.provider.logout({
providerUserSession,
companion,
});
delete companion.providerUserSession;
tokenService.removeFromCookies(res, companion.options, companion.providerClass.oauthProvider);
cleanSession();
res.json({ ok: true, ...data });
}
catch (err) {
if (respondWithError(err, res))
return;
next(err);
}
}