cam-inc / viron

OAS-driven Frontend-NoCode Administration Console
https://discovery.viron.plus/
MIT License
1.02k stars 52 forks source link

GoogleOauth認証でログインできない #306

Closed m0a closed 6 years ago

m0a commented 6 years ago

Overview (Required)

demoでgoogleOauth認証できず悩んでおります。

以下がconsoleに出力されているエラー内容となります。

   | https://localhost:8080 -> /viron/dist
web_1    | created dist/js/app.js in 24.3s
api_1    | { debug:
api_1    |    { stack:
api_1    |       [ 'VironLibError: Unauthorized',
api_1    |         '    at Object.genError (/demo/node_modules/node-vironlib/errors/helper.js:24:15)',
api_1    |         '    at genError (/demo/node_modules/node-vironlib/errors/frontend.js:14:17)',
api_1    |         '    at Object.Unauthorized (/demo/node_modules/node-vironlib/errors/frontend.js:33:23)',
api_1    |         '    at err (/demo/node_modules/node-vironlib/auth/jwt/middleware.js:34:37)',
api_1    |         '    at middleware (/demo/node_modules/express-jwt/lib/index.js:76:16)',
api_1    |         '    at /demo/node_modules/node-vironlib/auth/jwt/middleware.js:31:7',
api_1    |         '    at jwt (/demo/app.js:35:41)',
api_1    |         '    at andCheck (/demo/node_modules/swagger-node-runner/fittings/swagger_security.js:51:22)',
api_1    |         '    at /demo/node_modules/async/lib/async.js:356:13',
api_1    |         '    at async.forEachOf.async.eachOf (/demo/node_modules/async/lib/async.js:233:13)',
api_1    |         '    at _asyncMap (/demo/node_modules/async/lib/async.js:355:9)',
api_1    |         '    at Object.map (/demo/node_modules/async/lib/async.js:337:20)',
api_1    |         '    at orCheck (/demo/node_modules/swagger-node-runner/fittings/swagger_security.js:40:15)',
api_1    |         '    at /demo/node_modules/async/lib/async.js:356:13',
api_1    |         '    at async.forEachOf.async.eachOf (/demo/node_modules/async/lib/async.js:233:13)',
api_1    |         '    at _asyncMap (/demo/node_modules/async/lib/async.js:355:9)',
api_1    |         '    at Object.map (/demo/node_modules/async/lib/async.js:337:20)',
api_1    |         '    at swagger_security (/demo/node_modules/swagger-node-runner/fittings/swagger_security.js:36:11)',
api_1    |         '    at Runner.<anonymous> (/demo/node_modules/bagpipes/lib/bagpipes.js:171:7)',
api_1    |         '    at bound (domain.js:370:14)',
api_1    |         '    at Runner.runBound (domain.js:383:12)',
api_1    |         '    at Runner.<anonymous> (/demo/node_modules/pipeworks/pipeworks.js:72:17)' ],
api_1    |      name: 'VironLibError',
api_1    |      message: 'Unauthorized' },
api_1    |   error:
api_1    |    { VironLibError: Unauthorized
api_1    |     at Object.genError (/demo/node_modules/node-vironlib/errors/helper.js:24:15)
api_1    |     at genError (/demo/node_modules/node-vironlib/errors/frontend.js:14:17)
api_1    |     at Object.Unauthorized (/demo/node_modules/node-vironlib/errors/frontend.js:33:23)
api_1    |     at err (/demo/node_modules/node-vironlib/auth/jwt/middleware.js:34:37)
api_1    |     at middleware (/demo/node_modules/express-jwt/lib/index.js:76:16)
api_1    |     at /demo/node_modules/node-vironlib/auth/jwt/middleware.js:31:7
api_1    |     at jwt (/demo/app.js:35:41)
api_1    |     at andCheck (/demo/node_modules/swagger-node-runner/fittings/swagger_security.js:51:22)
api_1    |     at /demo/node_modules/async/lib/async.js:356:13
api_1    |     at async.forEachOf.async.eachOf (/demo/node_modules/async/lib/async.js:233:13)
api_1    |     at _asyncMap (/demo/node_modules/async/lib/async.js:355:9)
api_1    |     at Object.map (/demo/node_modules/async/lib/async.js:337:20)
api_1    |     at orCheck (/demo/node_modules/swagger-node-runner/fittings/swagger_security.js:40:15)
api_1    |     at /demo/node_modules/async/lib/async.js:356:13
api_1    |     at async.forEachOf.async.eachOf (/demo/node_modules/async/lib/async.js:233:13)
api_1    |     at _asyncMap (/demo/node_modules/async/lib/async.js:355:9)
api_1    |     at Object.map (/demo/node_modules/async/lib/async.js:337:20)
api_1    |     at swagger_security (/demo/node_modules/swagger-node-runner/fittings/swagger_security.js:36:11)
api_1    |     at Runner.<anonymous> (/demo/node_modules/bagpipes/lib/bagpipes.js:171:7)
api_1    |     at bound (domain.js:370:14)
api_1    |     at Runner.runBound (domain.js:383:12)
api_1    |     at Runner.<anonymous> (/demo/node_modules/pipeworks/pipeworks.js:72:17)
api_1    |      name: 'VironLibError',
api_1    |      statusCode: 401,
api_1    |      data:
api_1    |       { id: '#F-0000-0003',
api_1    |         code: 401,
api_1    |         name: 'Unauthorized',
api_1    |         message: 'Unauthorized',
api_1    |         detail: undefined },
api_1    |      code: 'server_error' },
api_1    |   request_headers:
api_1    |    { host: 'localhost:3000',
api_1    |      connection: 'keep-alive',
api_1    |      origin: 'https://localhost:8080',
api_1    |      'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
api_1    |      'content-type': 'application/json',
api_1    |      accept: '*/*',
api_1    |      referer: 'https://localhost:8080/',
api_1    |      'accept-encoding': 'gzip, deflate, br',
api_1    |      'accept-language': 'ja,en-US;q=0.9,en;q=0.8' } }
api_1    | { debug:
api_1    |    { stack:
api_1    |       [ 'VironLibError: Unauthorized',
api_1    |         '    at Object.genError (/demo/node_modules/node-vironlib/errors/helper.js:24:15)',
api_1    |         '    at genError (/demo/node_modules/node-vironlib/errors/frontend.js:14:17)',
api_1    |         '    at Object.Unauthorized (/demo/node_modules/node-vironlib/errors/frontend.js:33:23)',
api_1    |         '    at err (/demo/node_modules/node-vironlib/auth/jwt/middleware.js:34:37)',
api_1    |         '    at middleware (/demo/node_modules/express-jwt/lib/index.js:76:16)',
api_1    |         '    at /demo/node_modules/node-vironlib/auth/jwt/middleware.js:31:7',
api_1    |         '    at jwt (/demo/app.js:35:41)',
api_1    |         '    at andCheck (/demo/node_modules/swagger-node-runner/fittings/swagger_security.js:51:22)',
api_1    |         '    at /demo/node_modules/async/lib/async.js:356:13',
api_1    |         '    at async.forEachOf.async.eachOf (/demo/node_modules/async/lib/async.js:233:13)',
api_1    |         '    at _asyncMap (/demo/node_modules/async/lib/async.js:355:9)',
api_1    |         '    at Object.map (/demo/node_modules/async/lib/async.js:337:20)',
api_1    |         '    at orCheck (/demo/node_modules/swagger-node-runner/fittings/swagger_security.js:40:15)',
api_1    |         '    at /demo/node_modules/async/lib/async.js:356:13',
api_1    |         '    at async.forEachOf.async.eachOf (/demo/node_modules/async/lib/async.js:233:13)',
api_1    |         '    at _asyncMap (/demo/node_modules/async/lib/async.js:355:9)',
api_1    |         '    at Object.map (/demo/node_modules/async/lib/async.js:337:20)',
api_1    |         '    at swagger_security (/demo/node_modules/swagger-node-runner/fittings/swagger_security.js:36:11)',
api_1    |         '    at Runner.<anonymous> (/demo/node_modules/bagpipes/lib/bagpipes.js:171:7)',
api_1    |         '    at bound (domain.js:370:14)',
api_1    |         '    at Runner.runBound (domain.js:383:12)',
api_1    |         '    at Runner.<anonymous> (/demo/node_modules/pipeworks/pipeworks.js:72:17)' ],
api_1    |      name: 'VironLibError',
api_1    |      message: 'Unauthorized' },
api_1    |   error:
api_1    |    { VironLibError: Unauthorized
api_1    |     at Object.genError (/demo/node_modules/node-vironlib/errors/helper.js:24:15)
api_1    |     at genError (/demo/node_modules/node-vironlib/errors/frontend.js:14:17)
api_1    |     at Object.Unauthorized (/demo/node_modules/node-vironlib/errors/frontend.js:33:23)
api_1    |     at err (/demo/node_modules/node-vironlib/auth/jwt/middleware.js:34:37)
api_1    |     at middleware (/demo/node_modules/express-jwt/lib/index.js:76:16)
api_1    |     at /demo/node_modules/node-vironlib/auth/jwt/middleware.js:31:7
api_1    |     at jwt (/demo/app.js:35:41)
api_1    |     at andCheck (/demo/node_modules/swagger-node-runner/fittings/swagger_security.js:51:22)
api_1    |     at /demo/node_modules/async/lib/async.js:356:13
api_1    |     at async.forEachOf.async.eachOf (/demo/node_modules/async/lib/async.js:233:13)
api_1    |     at _asyncMap (/demo/node_modules/async/lib/async.js:355:9)
api_1    |     at Object.map (/demo/node_modules/async/lib/async.js:337:20)
api_1    |     at orCheck (/demo/node_modules/swagger-node-runner/fittings/swagger_security.js:40:15)
api_1    |     at /demo/node_modules/async/lib/async.js:356:13
api_1    |     at async.forEachOf.async.eachOf (/demo/node_modules/async/lib/async.js:233:13)
api_1    |     at _asyncMap (/demo/node_modules/async/lib/async.js:355:9)
api_1    |     at Object.map (/demo/node_modules/async/lib/async.js:337:20)
api_1    |     at swagger_security (/demo/node_modules/swagger-node-runner/fittings/swagger_security.js:36:11)
api_1    |     at Runner.<anonymous> (/demo/node_modules/bagpipes/lib/bagpipes.js:171:7)
api_1    |     at bound (domain.js:370:14)
api_1    |     at Runner.runBound (domain.js:383:12)
api_1    |     at Runner.<anonymous> (/demo/node_modules/pipeworks/pipeworks.js:72:17)
api_1    |      name: 'VironLibError',
api_1    |      statusCode: 401,
api_1    |      data:
api_1    |       { id: '#F-0000-0003',
api_1    |         code: 401,
api_1    |         name: 'Unauthorized',
api_1    |         message: 'Unauthorized',
api_1    |         detail: undefined },
api_1    |      code: 'server_error' },
api_1    |   request_headers:
api_1    |    { host: 'localhost:3000',
api_1    |      connection: 'keep-alive',
api_1    |      authorization: 'null',
api_1    |      origin: 'https://localhost:8080',
api_1    |      'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
api_1    |      accept: '*/*',
api_1    |      referer: 'https://localhost:8080/',
api_1    |      'accept-encoding': 'gzip, deflate, br',
api_1    |      'accept-language': 'ja,en-US;q=0.9,en;q=0.8' } }
api_1    | Executing (default): INSERT INTO `audit_logs` (`id`,`request_method`,`request_uri`,`source_ip`,`user_id`,`request_body`,`status_code`,`createdAt`,`updatedAt`) VALUES (DEFAULT,'GET','/viron_authtype','::ffff:172.18.0.1','','{}',200,'2018-02-03 19:06:17','2018-02-03 19:06:17');
api_1    | Executing (default): INSERT INTO `audit_logs` (`id`,`request_method`,`request_uri`,`source_ip`,`user_id`,`request_body`,`status_code`,`createdAt`,`updatedAt`) VALUES (DEFAULT,'GET','/googlesignin','::ffff:172.18.0.1','','{}',302,'2018-02-03 19:06:18','2018-02-03 19:06:18');
api_1    | { VironLibError: Forbidden
api_1    |     at Object.genError (/demo/node_modules/node-vironlib/errors/helper.js:24:15)
api_1    |     at genError (/demo/node_modules/node-vironlib/errors/frontend.js:14:17)
api_1    |     at Object.Forbidden (/demo/node_modules/node-vironlib/errors/frontend.js:37:20)
api_1    |     at asyncWrapper (/demo/node_modules/node-vironlib/auth/controller.js:146:31)
api_1    |     at <anonymous>
api_1    |     at process._tickCallback (internal/process/next_tick.js:160:7)
api_1    |   name: 'VironLibError',
api_1    |   statusCode: 403,
api_1    |   data:
api_1    |    { id: '#F-0000-0004',
api_1    |      code: 403,
api_1    |      name: 'Forbidden',
api_1    |      message: 'Forbidden',
api_1    |      detail: undefined } }
api_1    | Executing (default): INSERT INTO `audit_logs` (`id`,`request_method`,`request_uri`,`source_ip`,`user_id`,`request_body`,`status_code`,`createdAt`,`updatedAt`) VALUES (DEFAULT,'GET','/googleoauth2callback','::ffff:172.18.0.1','','{}',302,'2018-02-03 19:06:22','2018-02-03 19:06:22');

googleの認証画面からリダイレクトで戻ると認証失敗と出ました。

以下が作業手順となります

作業手順

$ cd $my_workspace
$ git clone clone git@github.com:cam-inc/viron.git
$ cd viron
$ code  ~/.zshrc 

以下を~/.zshrc に追加

# Viron
export GOOGLE_OAUTH_CLIENT_ID="XXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com"
export GOOGLE_OAUTH_CLIENT_SECRET="vXXXXXXXXXXXmbtIGPK"

環境変数の反映

$ source ~/.zshrc
$ echo $GOOGLE_OAUTH_CLIENT_ID                                                                                              
XXXXXXXXXXXXXXXXXXXX..apps.googleusercontent.com

vironの実行

$ npm run dev

apiサーバの稼働確認

$  curl -k https://localhost:3000/ping                                                                                       
pong%

この後上記エラーとなりました

noritama commented 6 years ago

@m0a issueありがとうございます。 こちらで不具合を確認しましたので修正しました。 最新のdevelopブランチをpullして試していただけますでしょうか。

m0a commented 6 years ago

無事認証が通りました。ありがとうございます。