質問 > フロント機能 > パスワード再発行メール文内の{{ reset_url }}のURLを変更する方法 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
sorairooto |
投稿日時: 2020/1/15 10:13
対応状況: −−−
|
半人前 登録日: 2019/5/23 居住地: 投稿: 21 |
パスワード再発行メール文内の{{ reset_url }}のURLを変更する方法 ▼テンプレート
[EC-CUBE]3.0.17 (新規インストール) [レンタルサーバ]カゴヤジャパン 専用サーバ(root権限有) [OS]Windows Server2016 [PHP]7.1.30 [データベース]MySQL5.7.26 [WEBサーバ]Apache2.4.39 [ブラウザ]IE11 [導入プラグインの有無]商品お問い合わせプラグイン・会員限定サイトプラグイン [カスタマイズの有無]別アプリケーション導入済み お世話になります。 パスワード再発行時に送られてくるメール本文内のリセットURLがローカルIPアドレスにて表示されてしまい困っております。 fogot_mail.twig内を確認すると{{ reset_url }}というもので制御されているところまでは辿り着きました。 おそらく初期値では管理画面のドメイン部(IPアドレス)を参照し、 再発行URLを発行しているのではないかと思います。 セキュリティ及び別アプリケーションの都合により、管理画面へのアクセスは直接サーバよりローカルIPにて行わなければなりません。 再発行URLのドメイン部分をローカルIPから独自ドメインに変更したいのですが、過去ログもなく変更箇所を見つけることができず困っております。 もしお分かりになる方がいらっしゃいましたら変更ファイル名と変更方法ご教授頂けませんでしょうか。 何卒宜しく御願い致します。 |
468 |
投稿日時: 2020/1/15 10:53
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: パスワード再発行メール文内の{{ reset_url }}のURLを変更する方法 変数reset_url自体は
/src/Eccube/Controller/ForgotController.php 83行目で生成して 次の処理へ渡してします。 URL文字列の生成はSilexのURL Generatorが利用されており、ドメイン部分は現在のアクセス情報より自動的に判定されていると思います。 (ECCUBE3は設定値にドメインは持っていないと思います) 該当箇所のURL文字列を常にドメインとなるように文字列連結等で生成するようにすれば良いのではないかと思います。 ただ、通常パスワード再発行時のメールはフロント側ログインページの「ログイン情報をお忘れですか?」の操作で送信されると思いますので フロント側へのアクセスがドメイン名で操作されているのであれば、ドメイン名で送信されると思っていたのですがそうではないのですね。 (テスト等でフロントの操作をIPアドレスで操作されていたりしますか?)
|
umebius |
投稿日時: 2020/1/15 11:33
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: パスワード再発行メール文内の{{ reset_url }}のURLを変更する方法 パスワード再発行メールURLの修正自体は468様がおっしゃっている通りですが、他の部分は影響出ていないのでしょうか?
URLの生成には$_SERVER['SERVER_NAME']が取得できないと$_SERVER['SERVER_ADDR']が使用されるはずなので、その影響ではないかと思います。 サーバーが少し特殊なようですが、もしロードバランサなど咬んでいるようでしたら、こちらの方法なども試しになると良いかもしれません。 https://doc.ec-cube.net/quickstart_proxy
|
sorairooto |
投稿日時: 2020/1/15 11:57
対応状況: −−−
|
半人前 登録日: 2019/5/23 居住地: 投稿: 21 |
Re: パスワード再発行メール文内の{{ reset_url }}のURLを変更する方法 shiro様
いつもご教授頂きありがとうございます。 お蔭様で該当箇所発見することができました。 PHP初心者なのでarray配列の生成方法を学びながらトライしてみたいと思いますので、設定できましたらまたご報告させて頂きます。 独自ドメインにてアクセスしているフロント側ログインページの「ログイン情報をお忘れですか?」から送信しておりますが、 管理画面のドメイン名(IPアドレス)にてリンクが生成されているようです。 下記、現在の状況記載させて頂きます。 【フロントページ】 https://ドメイン名/ 【管理画面】 http://ローカルIP:80/管理画面ID 【送られてくるメール本文のリセットURL】 http://ローカルIP:80/forgot/reset/文字列 |
sorairooto |
投稿日時: 2020/1/15 16:08
対応状況: −−−
|
半人前 登録日: 2019/5/23 居住地: 投稿: 21 |
Re: パスワード再発行メール文内の{{ reset_url }}のURLを変更する方法 umebius様
ご教授頂きましてありがとうございます。 仰る通り、ロードバランサー系を組み込んだサーバとなっております。 現状他に影響はでていないかと思いますが、PHP等は素人でテスト確認をし問題があれば都度対応の状況です…。 ご指摘頂きました[SERVER_NAME]・[SERVER_ADDR]の件ですが、 ロードバランサーの導入によりうまくドメイン名を取得できていないということであっておりますでしょうか? ご教授頂きましたURLを確認し、設定必要か確認したいと思います。 宜しく御願い致します。 |
sorairooto |
投稿日時: 2020/1/17 18:29
対応状況: 解決済
|
半人前 登録日: 2019/5/23 居住地: 投稿: 21 |
Re: パスワード再発行メール文内の{{ reset_url }}のURLを変更する方法 下記にて最終解決致しましたので、ログ共有させて頂きます。
/src/Eccube/Controller/ForgotController.php 83行目の下記記述により生成される再発行URLは、 ロードバランサー系のシステムを通過せずに直接サーバ情報を取得していることが問題となっておりました。 他機能への不具合等は現状見受けられません。 最終的にFogotController.phpの記述を下記に書き換え対応可能となりました。 $reset_url = $app->url('forgot_reset', array('reset_key' => $Customer->getResetKey())); ↓ $reset_url = "http://ドメイン名/forgot/reset/" . $Customer->getResetKey(); 御教授頂きました方、ありがとうございました。 どなたかの参考になりましたら幸いです。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |