Laravel httpsの場合、会員登録時のメール認証でエラーになる

ショコラ
ショコラ

Laravel httpsの場合、会員登録時のメール認証でエラーになる

フロントエンドにリバースプロキシの Nginx。バックエンドにアパッチ(PHP)という構成。
クライアントのブラウザとリバースプロキシは https で通信しますが、リバースプロキシとバックエンドは http で通信します。
この時に、Laravel の会員登録機能で送信されるメールの URL にアクセスすると「403 THIS ACTION IS UNAUTHORIZED.」のエラーになってしまう。

もっさん先輩
もっさん先輩

シチュエーション

会員登録時に送信されるメールの URL にアクセスすると、「403 THIS ACTION IS UNAUTHORIZED.」のエラーになってしまう。

手順

  1. app/Http/Middleware/TrustProxies.php の proxies を ‘**’ に変更します。
protected $proxies = '**';
  1. メールに記載された URL を https にする為に、app/Providers/AppServiceProvider.php の bootメソッド に以下のforceScheme を追加します。
\URL::forceScheme('https');

本番環境とステージング環境を https、ローカル環境を http にするなら↓こちらです。

if (\App::environment('production','staging')) {
  \URL::forceScheme('https');
}

Laravel でリバースプロキシを使うなら、この2か所を修正ですね。

以上

Scroll to Top