Laravel의 이벤트를 사용하여 사용자가 로그인 한 횟수를 계산하고 싶습니다.satellizer를 사용하여 Laravel에서 인증을 추적하는 방법
나는 ' satellizer '인증을 위해 타사 라이브러리를 사용하고, 나는 다음과 같이 보이는 AuthLoginEventHandler을 정의했습니다 : AuthenticationController에서
<?php namespace App\Handlers\Events;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldBeQueued;
use App\User;
use Illuminate\Support\Facades\Log;
class AuthLoginEventHandler {
/**
* Create the event handler.
*
* @return void
*/
public function __construct()
{
Log::info('Logged in User is working from constructor');
}
/**
* Handle the event.
*
* @param User $user
* @param $remember
* @return void
*/
public function handle(User $user, $remember)
{
Log::info('Logged in');
$user->login_counter = 1;
$user->save();
$user->increment('login_counter');
}
}
나는이 :
public function authenticate(Request $request)
{
$credentials = $request->only('email', 'password');
try {
// verify the credentials and create a token for the user
if (! $token = JWTAuth::attempt($credentials)) {
return response()->json(['error' => 'invalid_credentials','status'=>false], 401);
}
} catch (JWTException $e) {
// something went wrong
return response()->json(['error' => 'could_not_create_token','status'=>false], 500);
}
Log::info('Logged in User from JWT');
Event::fire(new AuthLoginEventHandler());
// if no errors are encountered we can return a JWT
return response()->json(compact('token'));
}
문제 AuthenticationController 내부의 authenticate() 함수에서 이벤트를 발생시킬 때 handle() 메서드가 호출되지 않습니다.
나는 생성자가 호출되고 있지만 핸들 함수가 아니라는 것을 알 수있다. 내가 무엇을 놓치고 있는지, 그리고 내가 그런 것을 얻을 수있는 다른 방법이 있는가!
감사합니다 이것에