首页 > php框架 > Laravel > 正文

实例讲解Laravel怎么实现登录和注册功能

PHPz
发布: 2023-04-12 09:23:39
原创
2910人浏览过

laravel是一款非常流行的php框架,其具有简单易用、高效稳定、安全可靠等优点,广泛应用于web应用程序的开发。在web应用开发中,登录和注册功能是必不可少的,那么如何使用laravel实现登录和注册功能呢?本文将为大家详细介绍。

一、安装Laravel

使用Laravel开发前需要先安装Laravel,可以通过composer安装,使用以下命令:

composer create-project --prefer-dist laravel/laravel project_name
登录后复制

安装完成后,进入项目所在目录,执行以下命令即可启动Laravel服务:

php artisan serve
登录后复制

二、创建用户模型和数据表

在Laravel中,可以很方便地使用Eloquent ORM来处理数据库操作。我们需要创建用户模型和数据表。

  1. 创建用户模型

在Laravel中创建模型非常方便,只需要在命令行中使用以下命令即可:

php artisan make:model User
登录后复制

在app目录下会生成一个User.php文件,该文件是用户模型。Laravel默认会将表名设置为模型的复数,因此我们需要在User模型中设置表名,如下所示:

class User extends Model
{
    protected $table = 'users';
}
登录后复制

2.创建users数据表

在数据库中创建users表,运行以下命令创建迁移:

php artisan make:migration create_users_table --create=users
登录后复制

在database/migrations目录下会生成一个迁移文件,如下所示:

class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('users');
    }
}
登录后复制

执行以下命令即可生成数据表:

php artisan migrate
登录后复制

三、使用laravel/ui包创建用户认证

Laravel提供了一个laravel/ui包,可以用来创建用户认证系统。首先使用以下命令安装laravel/ui包:

composer require laravel/ui
登录后复制

安装完成后,执行以下命令即可创建用户认证系统:

bee餐饮点餐外卖小程序
bee餐饮点餐外卖小程序

bee餐饮点餐外卖小程序是针对餐饮行业推出的一套完整的餐饮解决方案,实现了用户在线点餐下单、外卖、叫号排队、支付、配送等功能,完美的使餐饮行业更高效便捷!功能演示:1、桌号管理登录后台,左侧菜单 “桌号管理”,添加并管理你的桌号信息,添加以后在列表你将可以看到 ID 和 密钥,这两个数据用来生成桌子的二维码2、生成桌子二维码例如上面的ID为 308,密钥为 d3PiIY,那么现在去左侧菜单微信设置

bee餐饮点餐外卖小程序 1
查看详情 bee餐饮点餐外卖小程序
php artisan ui vue --auth
登录后复制

该命令的作用是创建Vue.js前端框架的默认登录和注册视图。执行完成后,你会发现resources/views目录下多了auth文件夹,包含了auth/login.blade.php和auth/register.blade.php两个视图文件。

四、设置路由

在Laravel中,路由是将URL与控制器方法绑定的一种机制。我们需要设置路由,以便能够访问到登录和注册页面。

在routes/web.php文件中,添加以下路由定义:

Route::get('/login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('/login', 'Auth\LoginController@login');
Route::get('/register', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('/register', 'Auth\RegisterController@register');
登录后复制

这些路由会分别调用Laravel默认的Auth\LoginController和Auth\RegisterController中的方法。

五、自定义用户认证

在实际应用中,我们往往需要自定义用户认证,以满足业务需求。以下是自定义用户认证的步骤:

  1. 创建LoginController和RegisterController控制器

我们需要在app/Http/Controllers/Auth目录下创建LoginController和RegisterController控制器,代码如下:

class LoginController extends Controller
{
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'email' => 'required|email',
            'password' => 'required|min:6'
        ]);
    }

    public function showLoginForm()
    {
        return view('auth.login');
    }

    public function login(Request $request)
    {
        $validator = $this->validator($request->all());
        if ($validator->fails()) {
            return redirect('/login')
                        ->withErrors($validator)
                        ->withInput();
        }

        if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
            return redirect('/');
        } else {
            return redirect('/login')
                        ->withErrors(['email' => '邮箱或密码错误'])
                        ->withInput();
        }
    }
}
登录后复制
class RegisterController extends Controller
{
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|max:255',
            'email' => 'required|email|unique:users',
            'password' => 'required|min:6|confirmed',
        ]);
    }

    public function showRegistrationForm()
    {
        return view('auth.register');
    }

    public function register(Request $request)
    {
        $validator = $this->validator($request->all());
        if ($validator->fails()) {
            return redirect('/register')
                        ->withErrors($validator)
                        ->withInput();
        }

        $user = User::create([
            'name' => $request['name'],
            'email' => $request['email'],
            'password' => bcrypt($request['password']),
        ]);

        Auth::login($user);
        
        return redirect('/');
    }
}
登录后复制

在自定义的控制器中,使用了validator方法来验证用户输入数据的合法性,并在登录或注册过程中对错误进行处理。

  1. 修改路由

将原有路由修改为以下代码:

Route::get('/login', 'LoginController@showLoginForm')->name('login');
Route::post('/login', 'LoginController@login');
Route::get('/register', 'RegisterController@showRegistrationForm')->name('register');
Route::post('/register', 'RegisterController@register');
登录后复制

这样,代码就按照我们自己的需求进行了修改和编写,登录注册功能就可以了。

六、总结

本文详细介绍了使用Laravel实现用户登录和注册的步骤,包括创建用户模型和数据表、使用laravel/ui包创建默认用户认证系统、设置路由以及自定义用户认证。无论是基本版还是自定义版,使用Laravel都非常方便,开发效率也得到了极大提升。如果你是一个PHP开发者,不妨尝试一下Laravel。

以上就是实例讲解Laravel怎么实现登录和注册功能的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号