@things-factory/auth-google 6.1.186 → 6.1.187

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,12 +8,14 @@ const env_1 = require("@things-factory/env");
8
8
  const auth_base_1 = require("@things-factory/auth-base");
9
9
  const SSOGoogleConfig = env_1.config.get('sso/google/config');
10
10
  if (SSOGoogleConfig) {
11
- koa_passport_1.default.use(new passport_google_oauth20_1.Strategy(SSOGoogleConfig, async (token, tokenSecret, profile, done) => {
11
+ koa_passport_1.default.use(new passport_google_oauth20_1.Strategy(Object.assign(Object.assign({}, SSOGoogleConfig), { scope: ['profile', 'https://www.googleapis.com/auth/userinfo.email'] }), async (token, tokenSecret, profile, done) => {
12
12
  if (!profile) {
13
13
  return done(new Error('No profile found'), null);
14
14
  }
15
15
  try {
16
- const { email } = profile;
16
+ const { emails, photos } = profile;
17
+ const email = emails === null || emails === void 0 ? void 0 : emails[0].value;
18
+ const photo = photos === null || photos === void 0 ? void 0 : photos[0].value;
17
19
  const user = await auth_base_1.User.checkAuthWithEmail({ email });
18
20
  const { id, userType, status } = user;
19
21
  return done(null, {
@@ -1 +1 @@
1
- {"version":3,"file":"google-authenticate-middleware.js","sourceRoot":"","sources":["../../server/middlewares/google-authenticate-middleware.ts"],"names":[],"mappings":";;;;AAAA,wEAAmC;AACnC,qEAAoE;AAEpE,6CAA4C;AAC5C,yDAAgD;AAEhD,MAAM,eAAe,GAAG,YAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAEvD,IAAI,eAAe,EAAE;IACnB,sBAAQ,CAAC,GAAG,CACV,IAAI,kCAAc,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9E,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAA;SACjD;QAED,IAAI;YACF,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;YAEzB,MAAM,IAAI,GAAG,MAAM,gBAAI,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;YAErD,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;YAErC,OAAO,IAAI,CAAC,IAAI,EAAE;gBAChB,EAAE;gBACF,QAAQ;gBACR,MAAM;aACP,CAAC,CAAA;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;SACnB;IACH,CAAC,CAAC,CACH,CAAA;CACF;AAEM,KAAK,UAAU,oBAAoB,CAAC,OAAO,EAAE,IAAI;IACtD,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACxB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE9B,IAAI,IAAI,EAAE;QACR,OAAO,MAAM,IAAI,EAAE,CAAA;KACpB;IAED,MAAM,sBAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE;QACpC,eAAe,EAAE,cAAc;QAC/B,eAAe,EAAE,eAAe;KACjC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACnB,CAAC;AAZD,oDAYC;AAEM,KAAK,UAAU,4BAA4B,CAAC,OAAO,EAAE,IAAI;;IAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACxB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE9B,IAAI,IAAI,EAAE;QACR,OAAO,MAAM,IAAI,EAAE,CAAA;KACpB;IAED,MAAM,sBAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE;QACpC,eAAe,EAAE,cAAc;QAC/B,eAAe,EAAE,eAAe;KACjC,CAAC,CAAC,OAAO,CAAC,CAAA;IAEX,wCAAwC;IACxC,MAAM,cAAc,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,QAAQ,CAAA;IAChD,IAAI,cAAc,EAAE;QAClB,MAAM,UAAU,GAAG,MAAM,gBAAI,CAAC,SAAS,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,CAAC,CAAA;QAC7D,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAA;KAChC;IAED,OAAO,MAAM,IAAI,EAAE,CAAA;AACrB,CAAC;AArBD,oEAqBC","sourcesContent":["import passport from 'koa-passport'\nimport { Strategy as GoogleStrategy } from 'passport-google-oauth20'\n\nimport { config } from '@things-factory/env'\nimport { User } from '@things-factory/auth-base'\n\nconst SSOGoogleConfig = config.get('sso/google/config')\n\nif (SSOGoogleConfig) {\n passport.use(\n new GoogleStrategy(SSOGoogleConfig, async (token, tokenSecret, profile, done) => {\n if (!profile) {\n return done(new Error('No profile found'), null)\n }\n\n try {\n const { email } = profile\n\n const user = await User.checkAuthWithEmail({ email })\n\n const { id, userType, status } = user\n\n return done(null, {\n id,\n userType,\n status\n })\n } catch (error) {\n return done(error)\n }\n })\n )\n}\n\nexport async function authGoogleMiddleware(context, next) {\n const { path } = context\n const { user } = context.state\n\n if (user) {\n return await next()\n }\n\n await passport.authenticate('google', {\n failureRedirect: '/auth/signin',\n successRedirect: '/auth/checkin'\n })(context, next)\n}\n\nexport async function googleSubscriptionMiddleware(context, next) {\n const { path } = context\n const { user } = context.state\n\n if (user) {\n return await next()\n }\n\n await passport.authenticate('google', {\n failureRedirect: '/auth/signin',\n successRedirect: '/auth/checkin'\n })(context)\n\n /* 다음은, websocket 에서 인증을 처리하기 위한 작업임. */\n const passportObject = context.session?.passport\n if (passportObject) {\n const userEntity = await User.checkAuth(passportObject?.user)\n context.state.user = userEntity\n }\n\n return await next()\n}\n"]}
1
+ {"version":3,"file":"google-authenticate-middleware.js","sourceRoot":"","sources":["../../server/middlewares/google-authenticate-middleware.ts"],"names":[],"mappings":";;;;AAAA,wEAAmC;AACnC,qEAAoE;AAEpE,6CAA4C;AAC5C,yDAAgD;AAEhD,MAAM,eAAe,GAAG,YAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAEvD,IAAI,eAAe,EAAE;IACnB,sBAAQ,CAAC,GAAG,CACV,IAAI,kCAAc,iCAEX,eAAe,KAClB,KAAK,EAAE,CAAC,SAAS,EAAE,gDAAgD,CAAC,KAEtE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC1C,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAA;SACjD;QAED,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;YAClC,MAAM,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,EAAE,KAAK,CAAA;YAC/B,MAAM,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,EAAE,KAAK,CAAA;YAE/B,MAAM,IAAI,GAAG,MAAM,gBAAI,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;YAErD,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;YAErC,OAAO,IAAI,CAAC,IAAI,EAAE;gBAChB,EAAE;gBACF,QAAQ;gBACR,MAAM;aACP,CAAC,CAAA;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;SACnB;IACH,CAAC,CACF,CACF,CAAA;CACF;AAEM,KAAK,UAAU,oBAAoB,CAAC,OAAO,EAAE,IAAI;IACtD,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACxB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE9B,IAAI,IAAI,EAAE;QACR,OAAO,MAAM,IAAI,EAAE,CAAA;KACpB;IAED,MAAM,sBAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE;QACpC,eAAe,EAAE,cAAc;QAC/B,eAAe,EAAE,eAAe;KACjC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACnB,CAAC;AAZD,oDAYC;AAEM,KAAK,UAAU,4BAA4B,CAAC,OAAO,EAAE,IAAI;;IAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACxB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE9B,IAAI,IAAI,EAAE;QACR,OAAO,MAAM,IAAI,EAAE,CAAA;KACpB;IAED,MAAM,sBAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE;QACpC,eAAe,EAAE,cAAc;QAC/B,eAAe,EAAE,eAAe;KACjC,CAAC,CAAC,OAAO,CAAC,CAAA;IAEX,wCAAwC;IACxC,MAAM,cAAc,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,QAAQ,CAAA;IAChD,IAAI,cAAc,EAAE;QAClB,MAAM,UAAU,GAAG,MAAM,gBAAI,CAAC,SAAS,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,CAAC,CAAA;QAC7D,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAA;KAChC;IAED,OAAO,MAAM,IAAI,EAAE,CAAA;AACrB,CAAC;AArBD,oEAqBC","sourcesContent":["import passport from 'koa-passport'\nimport { Strategy as GoogleStrategy } from 'passport-google-oauth20'\n\nimport { config } from '@things-factory/env'\nimport { User } from '@things-factory/auth-base'\n\nconst SSOGoogleConfig = config.get('sso/google/config')\n\nif (SSOGoogleConfig) {\n passport.use(\n new GoogleStrategy(\n {\n ...SSOGoogleConfig,\n scope: ['profile', 'https://www.googleapis.com/auth/userinfo.email']\n },\n async (token, tokenSecret, profile, done) => {\n if (!profile) {\n return done(new Error('No profile found'), null)\n }\n\n try {\n const { emails, photos } = profile\n const email = emails?.[0].value\n const photo = photos?.[0].value\n\n const user = await User.checkAuthWithEmail({ email })\n\n const { id, userType, status } = user\n\n return done(null, {\n id,\n userType,\n status\n })\n } catch (error) {\n return done(error)\n }\n }\n )\n )\n}\n\nexport async function authGoogleMiddleware(context, next) {\n const { path } = context\n const { user } = context.state\n\n if (user) {\n return await next()\n }\n\n await passport.authenticate('google', {\n failureRedirect: '/auth/signin',\n successRedirect: '/auth/checkin'\n })(context, next)\n}\n\nexport async function googleSubscriptionMiddleware(context, next) {\n const { path } = context\n const { user } = context.state\n\n if (user) {\n return await next()\n }\n\n await passport.authenticate('google', {\n failureRedirect: '/auth/signin',\n successRedirect: '/auth/checkin'\n })(context)\n\n /* 다음은, websocket 에서 인증을 처리하기 위한 작업임. */\n const passportObject = context.session?.passport\n if (passportObject) {\n const userEntity = await User.checkAuth(passportObject?.user)\n context.state.user = userEntity\n }\n\n return await next()\n}\n"]}
@@ -16,7 +16,7 @@ if (SSOGoogleConfig) {
16
16
  });
17
17
  process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) => {
18
18
  globalPublicRouter.get('/auth/signin-with-google', koa_passport_1.default.authenticate('google', {
19
- scope: ['https://www.googleapis.com/auth/plus.login']
19
+ scope: ['profile', 'https://www.googleapis.com/auth/userinfo.email']
20
20
  }));
21
21
  });
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;;AAAA,wEAAmC;AACnC,6CAA4C;AAG5C,MAAM,eAAe,GAAG,YAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAEvD,+CAAoD;AACpD,qCAAoE;AAEpE,IAAI,eAAe,EAAE;IACnB,OAAO,CAAC,EAAE,CAAC,kCAAyC,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE;QAC1E,cAAc,CAAC,IAAI,CAAC,kCAAoB,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;QACpF,kBAAkB,CAAC,GAAG,CAAC,yBAAgB,CAAC,MAAM,EAAE,EAAE,yBAAgB,CAAC,cAAc,EAAE,CAAC,CAAA;QACpF,kBAAkB,CAAC,GAAG,CAAC,gCAAuB,CAAC,MAAM,EAAE,EAAE,gCAAuB,CAAC,cAAc,EAAE,CAAC,CAAA;IACpG,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;QACpF,kBAAkB,CAAC,GAAG,CACpB,0BAA0B,EAC1B,sBAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE;YAC9B,KAAK,EAAE,CAAC,4CAA4C,CAAC;SACtD,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;CACH","sourcesContent":["import passport from 'koa-passport'\nimport { config } from '@things-factory/env'\nimport { setAccessTokenCookie } from '@things-factory/auth-base'\n\nconst SSOGoogleConfig = config.get('sso/google/config')\n\nimport { authGoogleMiddleware } from './middlewares'\nimport { authGoogleRouter, authGoogleWebhookRouter } from './router'\n\nif (SSOGoogleConfig) {\n process.on('bootstrap-collect-sso-middleware' as any, (_, ssoMiddlewares) => {\n ssoMiddlewares.push(authGoogleMiddleware)\n })\n\n process.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {\n domainPublicRouter.use(authGoogleRouter.routes(), authGoogleRouter.allowedMethods())\n domainPublicRouter.use(authGoogleWebhookRouter.routes(), authGoogleWebhookRouter.allowedMethods())\n })\n\n process.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {\n globalPublicRouter.get(\n '/auth/signin-with-google',\n passport.authenticate('google', {\n scope: ['https://www.googleapis.com/auth/plus.login']\n })\n )\n })\n}\n"]}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;;AAAA,wEAAmC;AACnC,6CAA4C;AAG5C,MAAM,eAAe,GAAG,YAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAEvD,+CAAoD;AACpD,qCAAoE;AAEpE,IAAI,eAAe,EAAE;IACnB,OAAO,CAAC,EAAE,CAAC,kCAAyC,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE;QAC1E,cAAc,CAAC,IAAI,CAAC,kCAAoB,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;QACpF,kBAAkB,CAAC,GAAG,CAAC,yBAAgB,CAAC,MAAM,EAAE,EAAE,yBAAgB,CAAC,cAAc,EAAE,CAAC,CAAA;QACpF,kBAAkB,CAAC,GAAG,CAAC,gCAAuB,CAAC,MAAM,EAAE,EAAE,gCAAuB,CAAC,cAAc,EAAE,CAAC,CAAA;IACpG,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;QACpF,kBAAkB,CAAC,GAAG,CACpB,0BAA0B,EAC1B,sBAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE;YAC9B,KAAK,EAAE,CAAC,SAAS,EAAE,gDAAgD,CAAC;SACrE,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;CACH","sourcesContent":["import passport from 'koa-passport'\nimport { config } from '@things-factory/env'\nimport { setAccessTokenCookie } from '@things-factory/auth-base'\n\nconst SSOGoogleConfig = config.get('sso/google/config')\n\nimport { authGoogleMiddleware } from './middlewares'\nimport { authGoogleRouter, authGoogleWebhookRouter } from './router'\n\nif (SSOGoogleConfig) {\n process.on('bootstrap-collect-sso-middleware' as any, (_, ssoMiddlewares) => {\n ssoMiddlewares.push(authGoogleMiddleware)\n })\n\n process.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {\n domainPublicRouter.use(authGoogleRouter.routes(), authGoogleRouter.allowedMethods())\n domainPublicRouter.use(authGoogleWebhookRouter.routes(), authGoogleWebhookRouter.allowedMethods())\n })\n\n process.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {\n globalPublicRouter.get(\n '/auth/signin-with-google',\n passport.authenticate('google', {\n scope: ['profile', 'https://www.googleapis.com/auth/userinfo.email']\n })\n )\n })\n}\n"]}