ショコラ
Laravel httpsの場合、会員登録時のメール認証でエラーになる
フロントエンドにリバースプロキシの Nginx。バックエンドにアパッチ(PHP)という構成。
クライアントのブラウザとリバースプロキシは https で通信しますが、リバースプロキシとバックエンドは http で通信します。
この時に、Laravel の会員登録機能で送信されるメールの URL にアクセスすると「403 THIS ACTION IS UNAUTHORIZED.」のエラーになってしまう。
もっさん先輩
シチュエーション
会員登録時に送信されるメールの URL にアクセスすると、「403 THIS ACTION IS UNAUTHORIZED.」のエラーになってしまう。
手順
- app/Http/Middleware/TrustProxies.php の proxies を ‘**’ に変更します。
protected $proxies = '**';
- メールに記載された URL を https にする為に、app/Providers/AppServiceProvider.php の bootメソッド に以下のforceScheme を追加します。
\URL::forceScheme('https');
本番環境とステージング環境を https、ローカル環境を http にするなら↓こちらです。
if (\App::environment('production','staging')) {
\URL::forceScheme('https');
}
Laravel でリバースプロキシを使うなら、この2か所を修正ですね。
以上