バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > ログインに失敗時に会員情報(会員名等)を取得したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
gfcph
投稿日時: 2021/8/5 15:11
対応状況: −−−
半人前
登録日: 2021/7/16
居住地:
投稿: 29
ログインに失敗時に会員情報(会員名等)を取得したい
▼テンプレート
[EC-CUBE]4.0.4、新規インストール
[レンタルサーバ]さくらのレンタルサーバー
[OS] FreeBSD
[PHP] 7.4.10
[データベース] MySQL 5.7.32
[WEBサーバ] Apache
[ブラウザ]chrome
[導入プラグインの有無]複数
[現象]
お世話になります。
標題の件、下記サイト様
https://a-zumi.net/eccube4-authentication-failure-subscriber/
を参考にログイン失敗時にログを出力するところまではいったのですが、
会員ID以外の会員情報を取得することができず、どなたかご教示いただけないでしょうか。

記述したコード↓
------------------------
public function onAuthenticationFailure(AuthenticationFailureEvent $event)
{
//$token = $event->getAuthenticationToken();

switch($token->getProviderKey()) {
case "customer":
// 会員がログイン失敗したときに何かする

log_error("テスト"); //ここは出力される

$Customer = $token->getUser();
log_error($Customer); //会員ID(メールアドレス)が出力される


log_error($Customer->getKana01()); //エラーが発生

------------------------

エラー内容↓
------------------------
Call to a member function getName01() on string ...
------------------------
tsasaki
投稿日時: 2021/8/5 15:51
対応状況: −−−
常連
登録日: 2018/12/20
居住地:
投稿: 42
Re: ログインに失敗時に会員情報(会員名等)を取得したい
Call to a member function getName01() on string ...
とエラーが出ているのであれば
$Customer = $token->getUser();
これがエンティティではないようですね。

log_error($Customer); //会員ID(メールアドレス)が出力される
これは会員IDが出力されていますか?
それとも画面から入力されたメールアドレスですか?
gfcph
投稿日時: 2021/8/5 16:03
対応状況: −−−
半人前
登録日: 2021/7/16
居住地:
投稿: 29
Re: ログインに失敗時に会員情報(会員名等)を取得したい
tsasaki 様

早速のご連絡ありがとうございます。

log_error($Customer);
ですが、入力したメールアドレスが出力されていました。

また、
log_error($token);
を試してみたところ
UsernamePasswordToken(user="入力したメールアドレス", authenticated=false, roles="")
が出力されていました。

ご参考となるか分からずすみませんが、
よろしくお願いいたします。
tsasaki
投稿日時: 2021/8/5 16:16
対応状況: −−−
常連
登録日: 2018/12/20
居住地:
投稿: 42
Re: ログインに失敗時に会員情報(会員名等)を取得したい
ということは
$Customer = $token->getUser();
これで取得したメールアドレスをもとにcustomerを検索して取得しないと会員名が取れなそうですね

もっといい方法があったらすみません。
gfcph
投稿日時: 2021/8/5 17:37
対応状況: −−−
半人前
登録日: 2021/7/16
居住地:
投稿: 29
Re: ログインに失敗時に会員情報(会員名等)を取得したい
tsasaki 様

ありがとうございます。
"検索して取得"と聞くと、管理画面の会員検索部分が
流用できそうかと予想しております。
上記部分参考に調べてみたいと思います。
tsasaki
投稿日時: 2021/8/5 17:50
対応状況: −−−
常連
登録日: 2018/12/20
居住地:
投稿: 42
Re: ログインに失敗時に会員情報(会員名等)を取得したい
すみません、検索して取得という言い方がわかりにくかったですね。

イメージとしては下記のような処理で「user-1@example.com」の部分を取得したemailにするという意味でした。
$customer = $this->customerRepository->findOneBy(['email' => 'user-1@example.com']);
gfcph
投稿日時: 2021/8/5 18:00
対応状況: −−−
半人前
登録日: 2021/7/16
居住地:
投稿: 29
Re: ログインに失敗時に会員情報(会員名等)を取得したい
tsasaki 様

詳しく教えていただき有難うございます!
まだec-cubeに詳しくなく、難航していたため
本当に助かります。
教えていただいた方法で試してみます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,854名です
総投稿数は109,989件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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