laravel框架登录注册流程

来源:undefined 2024-12-30 04:50:35 1035

laravel框架是一种基于php语言开发的优秀而受欢迎的web应用程序开发框架。laravel框架有非常完善的用户登录和注册系统,这个注册和登录系统可以实现用户的基本认证功能,并且可以对用户进行一些列的授权操作,如:用户权限管理、重置密码、邮箱验证等等。在下面的文章中,我们将详细阐述laravel框架的登录和注册流程。

用户注册流程

首先,我们需要创建用户表,用于保存用户的基本信息。我们可以使用Laravel提供的“make:model”命令来创建该模型。在终端中输入如下命令:

1

php artisan make:model User -m

登录后复制

这条命令将会在app目录下生成一个User模型,并且在数据库生成一个users表。在User模型中,我们需要指定用户使用的认证方式。Laravel框架提供了多种用户认证方式,我们可以在模型中的guard属性中进行设置:

1

protected $guard = web;

登录后复制

创建好用户模型之后,我们需要再创建一个用于展示用户注册页面的控制器,我们使用以下命令来创建该控制器:

1

php artisan make:controller AuthRegisterController --resource

登录后复制

运行完这个命令之后,Laravel框架将会在appHttpControllersAuth目录下创建一个名为RegisterController.php的文件。在该控制器中,我们需要实现以下方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

use AppUser;

use IlluminateFoundationAuthRegistersUsers;

public function register(Request $request)

{

$this->validator($request->all())->validate();

event(new Registered($user = $this->create($request->all())));

$this->guard()->login($user);

return redirect($this->redirectTo);

}

// 验证用户输入的数据

protected function validator(array $data)

{

return Validator::make($data, [

name => [required, string, max:255],

email => [required, string, email, max:255, unique:users],

password => [required, string, min:8, confirmed],

]);

}

// 保存注册用户信息到数据库

protected function create(array $data)

{

return User::create([

name => $data[name],

email => $data[email],

password => Hash::make($data[password]),

]);

}

登录后复制

1

2

Route::get(register, AuthRegisterController@showRegistrationForm)->name(register);

Route::post(register, AuthRegisterController@register);

登录后复制

在前台页面上,我们使用以下表单来收集用户数据:

1

登录后复制
登录后复制
@csrf
用户名
邮箱
密码
确认密码
注册

然后我们就成功地创建了用户注册流程。

用户登录流程

Laravel提供了非常快捷的用户登录方法,我们可以使用该方法来进行用户登录。在routes/web.php中添加以下路由:

1

2

3

Route::get(login, AuthLoginController@showLoginForm)->name(login);

Route::post(login, AuthLoginController@login);

Route::post(logout, AuthLoginController@logout)->name(logout);

登录后复制

然后创建一个与User模型对应的LoginController控制器。在控制器中,我们需要实现以下方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

use IlluminateFoundationAuthAuthenticatesUsers;

public function login(Request $request)

{

$this->validateLogin($request);

if ($this->attemptLogin($request)) {

return $this->sendLoginResponse($request);

}

return $this->sendFailedLoginResponse($request);

}

// 认证用户名和密码

protected function attemptLogin(Request $request)

{

return $this->guard()->attempt(

$this->credentials($request), $request->filled(remember)

);

}

// 获取用户名和密码

protected function credentials(Request $request)

{

return $request->only($this->username(), password);

}

public function username()

{

return email;

}

// 用户退出登录方法

public function logout(Request $request)

{

$this->guard()->logout();

$request->session()->invalidate();

return redirect(/);

}

登录后复制

接着,我们需要创建一个用户登录视图。在视图中,我们使用以下表单来接收用户数据:

1

登录后复制
登录后复制
@csrf
邮箱
密码
记住我
登录

在创建好以上视图和控制器之后,我们就实现了Laravel框架的用户登录和注册流程。需要注意的事项是用户登录成功之后,需要将用户信息存入session中,以便于后续功能的调用。在控制器的第二个方法中,我们可以利用Laravel框架提供的attemptLogin方法来验证用户的登录信息,如果验证通过就将用户信息存入session,并且将用户重定向到子网址。

综上,Laravel框架的用户登录和注册流程非常简单易懂,通过以上步骤实现用户登录和注册功能只需要简单的几行代码即可。当然,如果用户需要更为高级的认证和权限管理,也可以利用Laravel框架的扩展性,在以上模型和控制器的基础上添加一些自定义的方法。

以上就是laravel框架登录注册流程的详细内容,更多请关注php中文网其它相关文章!

最新文章