質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1575閲覧

[Laravel] AWSにデプロイしたらGoogleログイン機能が機能しなくなった

Tikka123456

総合スコア34

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/09/27 08:12

編集2020/09/29 11:06

LaravelのSocialiteを用いて作ったGoogleの認証機能がEC2の本番環境だと400: invalid_requestと出てしまいます。
Laravelのバージョン:Laravel Framework 6.18.20
ALB+ACMでhttps化済
イメージ説明

やったこと
.envファイルの見直し
EC2上にGithubからクローンしたソースコードの.envファイルに、ローカルにある.envファイルと同じようにクライアントIDとシークレットIDをこちらに記載
.envファイルは.gitignoreのなかに記載しているので、GitHubから見えない状態になっています。

REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 GOOGLE_CLIENT_ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx GOOGLE_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx MAIL_DRIVER=smtp MAIL_HOST=xxxxxxxxxxxxx MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET=

結果…変わらず。

EC2上でmigrate等をしないといけないのでしょうか?よろしくお願いします。

追記
nginxのエラーログ

2020/09/26 07:14:57 [error] 6389#0: *36873 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 172.18.3.206, server: xxxxxx.com, request: "POST /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/www.sock:", host: "54.150.25.126"

追記2

Composerをインストール

sudo curl -sS https://getcomposer.org/installer | php

Composer version 1.10.10 2020-08-03 11:35:19
php-mbstringとphp-xmlのインストール

sudo yum install php-mbstring php-xml -y

PHP関連パッケージのインストール

composer install --no-dev --prefer-dist

composer.json

"require": { "php": "^7.2", "fideloper/proxy": "^4.0", "laravel/framework": "^6.2", "laravel/socialite": "^4.4", "laravel/tinker": "^2.0" }, "require-dev": { "facade/ignition": "^1.4", "fzaninotto/faker": "^1.4", "mockery/mockery": "^1.0", "nunomaduro/collision": "^3.0", "phpunit/phpunit": "^8.0" },

Laravelのアプリケーションキー生成

$ php artisan key:generate

githubからコピーした.envファイルを編集

APP_NAME=Laravel APP_ENV=production Localをproductionに変更 APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= APP_DEBUG=false trueをfalseに変更 APP_URL=http://xxx.xxx.xxx.xxx localhostをEC2のパブリックIPアドレスに変更 # 略

Node.jsインストール

curl -sL https://rpm.nodesource.com/setup_13.x | sudo bash -

.envファイル

APP_NAME=Laravel APP_ENV=production APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx APP_DEBUG=false APP_URL=http://54.150.158.72 ここをhttps://xxxxxxxx.comにしたほうがいいのか? LOG_CHANNEL=stack DB_CONNECTION=pgsql DB_HOST=laravel-ci.xxxxxxxxxxxxxxxxxxxxxxxx DB_PORT=5432 DB_DATABASE=larasns DB_USERNAME=postgres DB_PASSWORD=xxxxxxxxxxxxxxxxxxxx BROADCAST_DRIVER=log CACHE_DRIVER=file QUEUE_CONNECTION=sync SESSION_DRIVER=cookie SESSION_LIFETIME=120 REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 GOOGLE_CLIENT_ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx GOOGLE_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxx MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

GooglePlatFormの設定
イメージ説明
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2020/09/27 15:11

さすがにこれだけだと原因を特定する情報が足りなさすぎるので、もっと色々ログを見たほうがいいです。 Laravelのログ、nginxのログ、ALBのログ等々。 また、ちゃんと本番用のURIをGoogleのコンソール側で設定していますか?
Tikka123456

2020/09/28 05:55

返信ありがとうございます。LaravelとALBのログに関しては特に問題はありませんでしたが、nginxのログにエラーログがあったので追記しました。 GoogleコンソールのURL設定という言うのはGooglePlatFormにドメインを登録するという事ですか?
yu_1985

2020/09/28 06:22

GoogleコンソールでクライアントIDとシークレットを発行してそれを使ってると思うんですが、そこにリダイレクトURIを登録するところがあるはずです。 そこは正しく設定できてますか? https://qiita.com/u-dai/items/91df3b923dc82fed5b76
Tikka123456

2020/09/28 08:13

はい、ローカル用のリダイレクトURIと本番用のドメインは設定できています。このWEBはGithubからEC2上にクローンしたもを表示しているので、ローカル環境でやったようなSocialite等のインストールをする必要があるのでしょうか?
yu_1985

2020/09/28 08:42

もしかして、ただgit cloneをしただけでしょうか…?
Tikka123456

2020/09/28 09:13

nginx、php、composerのインストールとgithubから.envファイルをコピーして Laravelのアプリケーションキーを設定してあります。Googleログイン系のはEC2上ではまだやっていません
yu_1985

2020/09/28 11:05

composer「を」インストールしたのか「composer install」を実行したのかどっちでしょうか。 後者をやっていないと必要なパッケージが揃ってない状態になるはずです。 また「できています」「設定してあります」ではなく、具体的に何をしたのか、どう設定してあるのかを貼ったほうが確実です。
Tikka123456

2020/09/28 14:52

composerをインストールしました。EC2上でインストールしたものを追記しました。
guest

回答1

0

ベストアンサー

本番用のコールバックURIがトップページになってますけどそれは正しいんでしょうか…?(URLではなくURIと書いているのはGoogle側の表記に合わせています)

おそらく
https://{ドメイン}/login/google/callback
では?
多分そのせいでローカルと本番で別の遷移先になってしまってきちんと動いていないのでは、と思います。

投稿2020/09/30 07:43

yu_1985

総合スコア7588

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tikka123456

2020/09/30 11:46

返信ありがとうございます。ドメインのあとに/login/google/callbackをいれたら正常にログインできるようになりました。いろいろとお時間を取らせてしまい申し訳ございません!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問