我们可以覆盖Laravel的登录功能吗?

时间:2018-06-14 05:10:14

标签: php laravel-5

当我们设置Laravel身份验证功能时,它将自动创建路由登录和登录功能。

我们可以更改路由登录功能并添加到我们创建的控制器功能吗?

我们可以在routes / web.php文件中编写路由登录,并将logincontroller更改为customercontroller吗?

2 个答案:

答案 0 :(得分:0)

  

我们可以更改路由登录功能并添加到我们创建的控制器功能吗? Blockquote

Whan你的意思是单词功能吗?

  1. 如果您希望在路线“登录”时覆盖操作,请更改路线Route :: get('login','YourTestController @ someAction') - > name('login');
  2. 如果要更改行为,则应更改App \ Http \ Controllers \ Auth \ LoginController(重定向或设置其他中间件)
  3. 如果要更改授权类型(例如,从操作目录或自定义身份验证服务器检查用户),您应创建从界面Illuminate \ Contracts \ Auth \ UserProvider派生的CustomUserProvider,依此类推。

答案 1 :(得分:0)

是的,您可以使用自定义控制器进行登录。例如,要检查用户密码并将其登录,您可以在控制器方法中使用以下代码:

if (!Auth::attempt([
    'email' => $request->input('login'),
    'password' => $request->input('password')
])) {
    abort(422, 'Incorrect login & password');
}

return response()->json([
    'redirectURL' => $request->session()->pull('url.intended', url('/'))
]);

其中emailpassword是用户模型字段(password存储密码哈希)。

然后,您可以将此控制器方法添加到routes/web.php文件中的路由,就像常规路由一样。

要将用户注销,只需致电:

Auth::logout();

您可以在official documentation

中找到有关手动身份验证的详细信息