バージョン選択

フォーラム

メニュー

オンライン状況

34 人のユーザが現在オンラインです。 (27 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 34
もっと...

サイト内検索

質問 > フロント機能 > パスワード再発行メール文内の{{ reset_url }}のURLを変更する方法

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sorairooto
投稿日時: 2020/1/15 10:13
対応状況: −−−
新米
登録日: 2019/5/23
居住地:
投稿: 8
パスワード再発行メール文内の{{ 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
居住地:
投稿: 2484
Re: パスワード再発行メール文内の{{ reset_url }}のURLを変更する方法
変数reset_url自体は
/src/Eccube/Controller/ForgotController.php 83行目で生成して
次の処理へ渡してします。

URL文字列の生成はSilexのURL Generatorが利用されており、ドメイン部分は現在のアクセス情報より自動的に判定されていると思います。
(ECCUBE3は設定値にドメインは持っていないと思います)

該当箇所のURL文字列を常にドメインとなるように文字列連結等で生成するようにすれば良いのではないかと思います。

ただ、通常パスワード再発行時のメールはフロント側ログインページの「ログイン情報をお忘れですか?」の操作で送信されると思いますので
フロント側へのアクセスがドメイン名で操作されているのであれば、ドメイン名で送信されると思っていたのですがそうではないのですね。
(テスト等でフロントの操作をIPアドレスで操作されていたりしますか?)


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

umebius
投稿日時: 2020/1/15 11:33
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1649
Re: パスワード再発行メール文内の{{ reset_url }}のURLを変更する方法
パスワード再発行メールURLの修正自体は468様がおっしゃっている通りですが、他の部分は影響出ていないのでしょうか?

URLの生成には$_SERVER['SERVER_NAME']が取得できないと$_SERVER['SERVER_ADDR']が使用されるはずなので、その影響ではないかと思います。

サーバーが少し特殊なようですが、もしロードバランサなど咬んでいるようでしたら、こちらの方法なども試しになると良いかもしれません。
https://doc.ec-cube.net/quickstart_proxy


----------------
EC-CUBE4系 カスタマイズ ECのプロがシステム特急案件承ります。
EC-CUBE開発 リモートで働くエンジニア募集中

sorairooto
投稿日時: 2020/1/15 11:57
対応状況: −−−
新米
登録日: 2019/5/23
居住地:
投稿: 8
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
居住地:
投稿: 8
Re: パスワード再発行メール文内の{{ reset_url }}のURLを変更する方法
umebius様

ご教授頂きましてありがとうございます。
仰る通り、ロードバランサー系を組み込んだサーバとなっております。

現状他に影響はでていないかと思いますが、PHP等は素人でテスト確認をし問題があれば都度対応の状況です…。

ご指摘頂きました[SERVER_NAME]・[SERVER_ADDR]の件ですが、
ロードバランサーの導入によりうまくドメイン名を取得できていないということであっておりますでしょうか?

ご教授頂きましたURLを確認し、設定必要か確認したいと思います。

宜しく御願い致します。
sorairooto
投稿日時: 2020/1/17 18:29
対応状況: 解決済
新米
登録日: 2019/5/23
居住地:
投稿: 8
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();


御教授頂きました方、ありがとうございました。
どなたかの参考になりましたら幸いです。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は64,358名です
総投稿数は97,210件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2484
4
nanasess
2088
5
umebius
1649
6
yuh
1612
7
red
1410
8
h_tanaka
1029
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.