バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 会員がログインしたときに、最終ログイン日時を登録したい

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
sleepsheep
投稿日時: 2022/12/5 17:51
対応状況: −−−
新米
登録日: 2022/9/2
居住地:
投稿: 9
会員がログインしたときに、最終ログイン日時を登録したい
[EC-CUBE] ec-cube.co(4.1.2)

会員情報(dtb_customer)に最終ログイン日時(last_login_date)の項目を追加し、
会員がログイン成功したときに最終ログイン日時を更新する処理を作成しています。

下記のページの記事を参考に、ログイン時に最終ログイン日時の登録処理を作成しました。
https://a-zumi.net/eccube4-authentication-success-subscriber/


onAuthenticationSuccess()内の処理を下記のように修正しています。
(その他は参考記事のソースと同じにしています)

public function onAuthenticationSuccess(AuthenticationEvent $event)
    {
        $token = $event->getAuthenticationToken();
        
        if(!$token->getRoles()) {
            return;
        }

        switch($token->getProviderKey()) {
            case "customer":
                // 会員がログインしたとき
                $User = $token->getUser();
                $Customer = $this->customerRepository->find($User->getId());
                // ログイン会員の最終ログイン日時を更新
                $now = New \DateTime();
                $Customer->setLastLoginDate($now);
                $this->entityManager->persist($Customer);
                $this->entityManager->flush();
                break;

            case "admin":
                // メンバーがログインしたとき
                break;
        }
    }



この実装により、ログイン時に最終ログイン日時を登録することはできるようになりました。

しかしながら、この処理を入れてログイン状態で下記の操作を行うと、ログアウト状態になりログイン画面が表示されてしまいます。
(1) マイページの会員情報編集ページを表示
(2) マイページの他のページを表示

会員情報のDBを確認したところ、ログインしていたの会員のパスワードが "**********" に更新されていました。
また、上記のソースコードで$Customerのパスワードをログに出力したら、"**********" がセットされていました。

会員情報編集画面のコントローラーを見ると、index()内の処理で会員情報のパスワードに初期値("**********")が
セットされている箇所があり、この情報を取得しているのではないかと思っています。
(eccube_default_passwordに初期値が設定されています)
src/Eccube/Controller/Mypage/ChangeController.php

    $previous_password = $Customer->getPassword();
    $Customer->setPassword($this->eccubeConfig['eccube_default_password']);



onAuthenticationSuccess()の処理で、ログイン(画面からログインおよび自動ログイン)したときのみ
ログイン日時の登録処理が実行されるようにするにはどのようにすればよいでしょうか?

ご教授いただけましたら幸いです。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » 会員がログインしたときに、最終ログイン日時を登録したい sleepsheep 2022/12/5 17:51
     Re: 会員がログインしたときに、最終ログイン日時を登録したい yuh 2022/12/7 13:32
       Re: 会員がログインしたときに、最終ログイン日時を登録したい mcontact 2022/12/7 13:37
         Re: 会員がログインしたときに、最終ログイン日時を登録したい yuh 2022/12/7 14:12
           Re: 会員がログインしたときに、最終ログイン日時を登録したい sleepsheep 2022/12/8 15:30
             Re: 会員がログインしたときに、最終ログイン日時を登録したい mcontact 2022/12/8 16:21
             Re: 会員がログインしたときに、最終ログイン日時を登録したい yuh 2022/12/8 17:23
               Re: 会員がログインしたときに、最終ログイン日時を登録したい sleepsheep 2022/12/9 14:19
                 Re: 会員がログインしたときに、最終ログイン日時を登録したい yuh 2022/12/9 18:48
                   Re: 会員がログインしたときに、最終ログイン日時を登録したい sleepsheep 2022/12/12 8:52

 



ログイン


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

統計情報

総メンバー数は89,047名です
総投稿数は110,020件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
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.