根据 Laravel 7.x 文档,我尝试为我的应用程序创建手动身份验证。文档显示如下:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
public function authenticate(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
// Authentication passed...
return redirect()->intended('dashboard');
}
}
}
我有自己的用户表:
sys_users
==========
user_acc character varying(20) NOT NULL, -- Primary Key
full_name character varying(300) NOT NULL,
is_suspended boolean DEFAULT FALSE,
CONSTRAINT PK_SysUsers PRIMARY KEY (user_acc),
要登录,用户需要输入以下数据:
用户名
密码
访问模块
我尝试对控制器进行一些自定义(尚未完成):
class LoginController extends Controller
{
public function authenticate(Request $request)
{
$request->validate([
'username' => 'required',
'password' => 'required',
]);
$credentials = $request->only('username', 'password', 'module');
if (Auth::attempt($credentials)) {
return redirect()->route($request->module);
}
}
}
我想在上面的自定义代码中添加的是:(i)通过查询表来检查用户名是否存在于表中sys_users
,(ii)使用POP3检查密码(我已经准备好了phpmailer
库和代码),以及( iii)通过查询我准备的另一个表来检查用户是否有权访问这些模块。
问题是:
我不知道将所有代码放在哪里。如果可能的话,我想将它们放在Auth
类的attempt
方法中,但我似乎找不到所谓的方法。文档非常缺乏,没有提供详细的解释。
如果不知何故无法修改类attempt
中的方法Auth
,我应该如何进行身份验证过程?
jeck猫