Laravel 5.3创建登录/身份验证操作

时间:2016-12-12 12:14:03

标签: php laravel laravel-5.3

我使用laravel 5.3并且已经发现旧的auth控制器已经移动到核心(Illuminate ...)。对于未经身份验证的用户,有一个未经身份验证的用户"函数在App \ Exceptions \ Handler.php中,当未经身份验证的用户抛出"身份验证" -exception时调用。

但是我没有找到放置一个函数的位置,每当用户成功登录或者已经通过记忆令牌成功进行身份验证时应该调用该函数。在我的例子中,这个函数应该做一些事情,比如log ip等。

你能帮我把这个功能放在哪里吗?

谢谢!

4 个答案:

答案 0 :(得分:1)

我认为可以在命令提示符下使用此命令来完成。

php artisan make:auth

答案 1 :(得分:0)

除非我遗漏了某些内容,否则Laravel 5.3的App \ Exceptions \ Handler.php中没有“未经身份验证的”功能

您应该查看authorization actions

Laravel 5.3预装了Auth scafolding。

PROJECT/app/Http/Controllers/Auth 

答案 2 :(得分:0)

在5.3中,我刚刚使用开箱即用的身份验证修改了登录的成功和失败操作。这个要点可能对你有所帮助。它实际上解释了如何使用api / login登录并将令牌传递回移动平台。然后,您可以随后使用令牌回拨所有API。我修改了返回以识别Json请求标头并将用户作为json发回。

以下是可能对您有所帮助的信息。 Laravel API Token Help

答案 3 :(得分: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' => 'AdminsController@getLogin',
        'as' => 'admin.login'
    ]);

    Route::post('/admin/login', [
        'uses' => 'AdminsController@postLogin',
        'as' => 'admin.login'
    ]);
});

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

希望您能够使用此代码,并且它很有帮助。

相关问题