Skip to content

Commit

Permalink
fix: add support for logout
Browse files Browse the repository at this point in the history
  • Loading branch information
adrien2p committed Nov 4, 2022
1 parent 5d44380 commit 7bbefe7
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 3 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
]
},
"scripts": {
"build": "./node_modules/.bin/lerna run build",
"build": "./node_modules/.bin/lerna run --parallel build",
"bootstrap": "./node_modules/.bin/lerna bootstrap",
"clean": "./node_modules/.bin/lerna run --parallel clean",
"release": "./node_modules/.bin/lerna publish",
Expand Down
42 changes: 40 additions & 2 deletions packages/medusa-plugin-auth/src/api/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { Router } from 'express';
import { ConfigModule } from '@medusajs/medusa/dist/types/global';
import wrapHandler from '@medusajs/medusa/dist/api/middlewares/await-middleware';
import loadConfig from '@medusajs/medusa/dist/loaders/config';

import { AuthOptions } from '../types';
import { AUTH_TOKEN_COOKIE_NAME, AuthOptions } from '../types';
import { loadJwtOverrideStrategy } from '../auth-strategies/jwt-override';
import { getGoogleAdminAuthRouter, getGoogleStoreAuthRouter } from '../auth-strategies/google';
import cors from "cors";

export default function (rootDirectory, pluginOptions: AuthOptions): Router[] {
const configModule = loadConfig(rootDirectory) as ConfigModule;
Expand All @@ -30,5 +32,41 @@ function loadRouters(configModule: ConfigModule, options: AuthOptions): Router[]
}
}

return routers;

return [...routers, getLogoutRouter(configModule)];
}

function getLogoutRouter(configModule: ConfigModule): Router {
const router = Router()

const logoutHandler = async (req, res) => {
try {
req.session.destroy()
} catch (e) {
}

req.session.jwt = {}

res.clearCookie(AUTH_TOKEN_COOKIE_NAME);

res.status(200).json({})
}

const adminCorsOptions = {
origin: configModule.projectConfig.admin_cors.split(','),
credentials: true,
};

router.use("/admin/auth", cors(adminCorsOptions))
router.delete("/admin/auth", wrapHandler(logoutHandler))

const storeCorsOptions = {
origin: configModule.projectConfig.store_cors.split(','),
credentials: true,
};

router.use("/store/auth", cors(storeCorsOptions))
router.delete("/store/auth", wrapHandler(logoutHandler))

return router;
}

0 comments on commit 7bbefe7

Please sign in to comment.