2016-12-12 3 views
1

Я использую laravel 5.3 и уже выяснил, что старый контроллер auth был перемещен в ядро ​​(Illuminate ...). Для пользователей, не прошедших проверку подлинности, в приложении \ Exceptions \ Handler.php есть функция «неаутентифицированная», которая вызывается, когда неаутентифицированный пользователь выдает «аутентификацию» -exception.Laravel 5.3 create login/auth actions

Однако я не нашел, где поставить функцию, которая будет вызываться каждый раз, когда пользователю успешно журналов или была аутентификацией успешно самым помните маркер. В моем примере эта функция должна делать некоторые вещи, такие как журнал ip и т. Д.

Можете ли вы помочь мне, где поставить такую ​​функцию?

Спасибо!

ответ

1

Я думаю, что это можно сделать с помощью этой команды в командной строке.

php artisan make:auth 
+0

Я уже сделал это, и система аутентификации (регистрация, логин ...) работает очень хорошо. Я просто хочу добавить пользовательскую функцию, которая вызывается каждый раз, когда кто-то регистрируется успешно. – Tobi

0

Если меня не хватает чего-то, нет "неаутентифицированное" функции в App \ Исключения \ handler.php из Laravel 5,3

Вы должны смотреть на authorization actions

Laravel 5.3 поставляется с аутентификацией scafolding предварительно упакован.

PROJECT/app/Http/Controllers/Auth 
+0

Это функция от моего handler.php: 'защищенной функция неаутентифицированного ($ запроса, AuthenticationException $ исключение) { если ($ request-> expectsJson()) { обратного ответа() -> JSON ([» error '=>' Unauthenticated. '], 401); } \t \t echo $ request; return redirect() -> guest ('login'); } ' – Tobi

+0

Это пользовательская функция, я полагаю? Я просто создал простой проект для удовольствия с Laravel Framework версии 5.3.26, и у него нет этой функции. Но это не проблема. – codiiv

+0

Возможно, вам потребуется создать прослушиватель событий, который прослушивает https: // laracasts.com/discuss/channels/general-discussion/login-event-handling-in-laravel-5 – codiiv

0

В 5.3 Я только что изменил действия успеха и отказа для входа в систему с использованием готовой аутентификации. Этот Gist может быть вам полезен. На самом деле он объясняет шаг за шагом, как войти в систему с помощью api/login и передать токен на мобильную платформу. Затем вы можете перезвонить ко всем своим API с помощью токена. Я изменил результаты, чтобы распознать заголовок запроса Json и отправить обратно пользователю как json.

Вот информация, которая может вам помочь. Laravel API Token Help

+0

Шаги 7 и 8 должны помочь в решении вашего вопроса. –

0

Это специальная конструкция.

class AdminsController extends Controller 
{ 
    public function getLogin() 
    { 
     return view('admin.login'); 
    } 

    public function postLogin(Request $request) 
    { 
     $this->validate($request, ['email' => 'required|email', 'password' => 'required']); 

     if(!Auth::attempt(['email' => $request['email'], 'password' => $request['password']])) { 
      return redirect()->back()->with(['fail' => 'Could not log you in!']); 
     } 

     return redirect()->route('admin.dashboard'); 

    } 

    public function getLogout() 
    { 
      Auth::logout(); 
      return redirect()->route('index'); 
    } 
} 

И в routes.php:

Route::group(['middleware' => ['guest']], function() { 

    Route::get('/admin/login', [ 
     'uses' => '[email protected]', 
     'as' => 'admin.login' 
    ]); 

    Route::post('/admin/login', [ 
     'uses' => '[email protected]', 
     'as' => 'admin.login' 
    ]); 
}); 

Route::group(['middleware' => ['auth']], function() { 
    Route::get('/admin/logout', [ 
     'uses' => '[email protected]', 
     'as' => 'admin.logout' 
    ]); 
}); 

Надеется, что вы получите вокруг этого кода и что это было полезно.