laravel的用户认证系统-手动认证用户
2017-08-18 10:34
239 查看
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文件中修改此处路径:
<?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下面。
在其核心代码中,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'); } } }
相关文章推荐
- Laravel—用户认证系统(一)
- Laravel多用户认证系统示例详解
- Entrust - Laravel 用户权限系统解决方案
- 教你用PHP写MySQL数据库用户认证系统
- Laravel 5.3 使用内置的 Auth 组件实现多用户认证功能以及登陆才能访问后台的功能的一种实现方法
- 居然还有WM_TIMECHANGE(只在用户手动改变系统时间时才会产生作用)
- Django1.5内置的用户认证系统介绍(之三)权限与授权--by hillfree
- Django用户认证系统
- laravel 自带Auth多用户认证
- Laravel 5.3 不同用户表登录认证-优化
- Centos 6.5上Apache + PAM + SVN服务安装配置(使用本地系统用户认证)
- Laravel Passport - 创建 REST API 用户认证
- D django 用户认证系统
- 实战部署MySQL用户认证的Postfix邮件系统(3)
- Django1.5内置的用户认证系统介绍(之四)Authentication in Web requests --by hillfree
- 社群系统ThinkSNS+ APP更新至V0.8.3---新增打赏、用户认证
- Laravel下用户权限系统 的解决方案Zizaco/Entrust
- Django用户认证系统(二)Web请求中的认证
- Laravel实现用户多字段认证的解决方法
- Laravel 5.2 中多用户认证实现(前台和后台登录)