現在開発中のNode.jsを使ったアプリでログインにgoogle-auth20を使いたいと思い、開発環境ではgoogleアカウントでうまく動作していました。しかし本番環境に移行しようと思い、アプリをherokuを使って公開してGoogleAPlsで新しいクライアントIDとクライアントシークレットを取得しましたが、動作しません。googleアカウントを選ぶところまでは正常に動作しますが、アカウントを選びその先へ進むとずっとロードし続け、そのうちheroku側がエラーが出てしまうと言った感じです。
承認済みの JavaScript 生成元が
https://mysterious-temple-14370.herokuapp.com
で、承認済みのリダイレクト URIが
https://mysterious-temple-14370.herokuapp.com/auth/google/callback
です。
↓app.jsのgoogle認証の部分
javascript
1//Google認証 2var GoogleStrategy = require('passport-google-oauth20').Strategy; 3var GOOGLE_CLIENT_ID = process.env.GOOGLE_CLIENT_ID || '〜旧クライアントID〜'; 4var GOOGLE_CLIENT_SECRET = process.env.GOOGLE_CLIENT_SECRET || '〜旧シークレットID〜'; 5 6passport.serializeUser(function (user, done) { 7 done(null, user); 8}); 9 10passport.deserializeUser(function (user, done) { 11 done(null, obj); 12}); 13 14passport.use(new GoogleStrategy({ 15 clientID: GOOGLE_CLIENT_ID, 16 clientSecret: GOOGLE_CLIENT_SECRET, 17 callbackURL: process.env.HEROKU_URL ? process.env.HEROKU_URL + 'auth/google/callback' : 'http://localhost:8000/auth/google/callback' 18}, 19 function (accessToken, refreshToken, profile, done) { 20 process.nextTick(function () { 21 //ここの処理はデータベースの処理で関係ないので気にしないでください 22 User.upsert({ 23 userId: profile.id, 24 username: profile.displayName, 25 numberofmyAnswers: profile.numberofmyAnswers, 26 numberofmyQuestionnaire: profile.numberofmyQuestionnaire 27 }).then(() => { 28 done(null, profile); 29 }); 30 }); 31 } 32));
ログインできないのはどこが原因でしょうか?ご教示よろしくお願いします。
あなたの回答
tips
プレビュー