laravel的用户认证系统-手动认证用户

Laravel 中实现用户认证非常简单。实际上,几乎所有东西都已经为你配置好了。配置文件位于 config/auth.php,其中包含了用于调整认证服务行为的、标注好注释的选项配置。

在其核心代码中,Laravel 的认证组件由 guards 和 providers 组成,Guard 定义了用户在每个请求中如何实现认证,例如,Laravel 通过 session guard 来维护 Session 存储的状态和 Cookie。

Provider 定义了如何从持久化存储中获取用户信息,Laravel 底层支持通过 Eloquent 和数据库查询构建器两种方式来获取用户,如果需要的话,你还可以定义额外的 Provider。

1.快速认证

Laravel中自带的有一套处理用户认证的代码。你只需要运行如下命令可快速生成认证所需要的路由和视图:

php artisan make:auth
之后你就会在自己的laravel框架中看到这一套登陆验证,退出登录的代码。

2.手动认证用户(写一个简单的)

首先是登陆界面,一定注意不要落掉令牌

<form action="dologin" method="post">
		<input type="hidden" name="_token" value="{{ csrf_token() }}">
		<input type="text" name="name" />
		<input type="password" name="password" />
		<input type="submit" value="提交">
	</form>
接着是Model,这个可以采用Auth中生成的那个user.php,但是注意自己的路径和命名空间问题。模型可以直接使用artisan命令生成。注意:如果你的模型路径有变更,比如在admin下面而不是原来放置user.php的位置,你需要到config/auth.php文件中修改此处路径:

'model' => App\Model\Admin\User::class,

<?php

namespace App\Model\Admin;

use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends  Authenticatable
{
    //
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}

最后是控制器,我们要使用Facades。Facades为应用程序的  服务容器 中可用的类提供了一个「静态」接口。Laravel 自带了很多 facades ,几乎可以用来访问到 Laravel 中所有的服务。这些可调用的程序都在:vendor\laravel\framework\src\Illuminate\Support\Facades下面。
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    public function login()
    {
    	return view('login');
    }

    public function dologin(Request $request)
    {
    	$name = $request->input('name');
    	$password = $request->input('password');
    	if (Auth::attempt(['email' => $name, 'password' => $password])) {
            // Authentication passed...
            dd('ok');
        }else{
        	dd('error');
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

millet109

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值