Browse Source

Modify new accessTokenParser to optionally accept legacy API tokens

Shun Miyazawa 10 months ago
parent
commit
fd1f298473
1 changed files with 8 additions and 4 deletions
  1. 8 4
      apps/app/src/server/middlewares/access-token-parser/index.ts

+ 8 - 4
apps/app/src/server/middlewares/access-token-parser/index.ts

@@ -6,14 +6,18 @@ import { parserForAccessToken } from './access-token';
 import { parserForApiToken } from './api-token';
 import type { AccessTokenParserReq } from './interfaces';
 
-export const accessTokenParser = (scopes?: Scope[]) => {
+export const accessTokenParser = (scopes?: Scope[], isLegacyAccessTokenEnabled = false) => {
   return async(req: AccessTokenParserReq, res: Response, next: NextFunction): Promise<void> => {
     // TODO: comply HTTP header of RFC6750 / Authorization: Bearer
+    if (scopes == null || scopes.length === 0) {
+      return next();
+    }
+
+    await parserForAccessToken(scopes)(req, res, next);
 
-    if (scopes != null) {
-      await parserForAccessToken(scopes)(req, res, next);
+    if (isLegacyAccessTokenEnabled) {
+      await parserForApiToken(req, res, next);
     }
-    await parserForApiToken(req, res, next);
 
     return next();
   };