laravel一步步实现权限控制(1) 注册重写
来源:互联网 发布:医美网络咨询师好做吗 编辑:程序博客网 时间:2024/06/13 22:43
laravel 注册重写
虽然laravel本身已经提供了一整套的注册系统来来供我们注册用,但实际使用过程中我们往往需要重写登录功能来满足我们的业务需求。由于文档写的十分简单,因此将自己的学习经验写下来供新手参考
配置路由
Route::controllers([ 'auth' => 'Auth\AuthController',]);
这种路由配置方式对应的路径方式是 访问的方式+方法名 如在浏览器中使用get方式去访问register方法 那么这个路由会自动配置到这个类下面的getRegister方法。post也是一样
建立一个自己的注册页面
我在AuthControlle里建立一个自己的视图
public function getRegister(){ return view("auth.register"); }
上面已经说了路由的解析方式 只要配好路由就可以了
我们需要定义一个处理这个的注册处理类
接下来我会把所有的代码贴出来再代码中去讲解怎么重写 同样这个文件位于AuthController下
public function postRegister(UserRegisterRequest $req){ //验证通过 注册用户 $data = $req->all(); $data['register_ip'] = $req->ip(); $user = $this->registrar->create($data); return redirect()->intended('/');}
大家会发现整个注册功能非常简单 那么具体可以在哪里做了注册的限制呢 其实是在UserRegisterRequest这个文件里去对所有填写的表单数据进行了控制
<?php namespace App\Http\Requests;use App\Http\Requests\Request;use Config;class UserRegisterRequest extends Request { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { //自定义的电话号码正则表达式 $regex = Config::get('constant.phone_number_regex'); return [ //对注册表单提交的信息进行验证 "username" => ['required','min:3','max:16','unique:users'], "phone_number" => ['required','min:3','max:16','unique:users'], "password" => ['required','min:6','max:16','confirmed'], "verify_code" => ['required','digits:4'], ]; } public function sanitize() { return $this->all(); }}
我们可以通过laravel自带的php artisan make:request 创建一个请求类 这个类可以对所有请求的数据进行控制,在rule里面定义好规则就可以控制请求的的数据,如果符合规则那么会继续访问。
改写注册添加数据操作
注册的目的就是为了将符合条件的数据写入用户表中 既然改写了请求的数据 那么自然也要改写请求的操作
注册成功后添加到用户数据库中 是在上面的 postRegister中的这一段代码来实现的
$user = $this->registrar->create($data);
找到这段代码 这段代码位于 services下的Registrar.php下
public function create(array $data) { $properties = [ 'username' => $data['username'], 'password' => bcrypt($data['password']), 'register_time' => Carbon::now()->toDateTimeString(), 'register_ip' => $data['register_ip'] ]; return User::create($properties); $user = new User(); $user->save(); }
将这个处理函数改成符合自己业务逻辑的函数就行了
0 0
- laravel一步步实现权限控制(1) 注册重写
- laravel一步步实现权限控制(2) 登录重写
- laravel权限控制(登录,增删改查权限)
- Laravel 权限控制整理--中间件
- Laravel 权限控制整理--Auth
- 权限的重写,Authorize的控制
- Laravel 一步步写Laravel CMS(一)——添加后台 Laravel Administrator
- Laravel 实现简单Rbac 权限管理
- 数据库权限控制实现方式(可复用)
- 数据库权限控制实现方式(可复用)
- Struts2实现权限控制
- filter实现权限控制
- Filter实现权限控制
- laravel利用中间件做防非法登录和权限控制
- laravel(七)laravel自动生成基本注册登录功能
- MOSS字段编辑权限控制方案(3)-重写表单字段呈现逻辑
- Laravel 一步步写Laravel CMS(二)——后台文章发布
- 重写AuthorizeAttribute实现自己的权限验证
- Java1.8环境变量配置
- Android开发小技巧
- 经典SQL面试题收集
- csu 1328 近似回文词
- 逆境
- laravel一步步实现权限控制(1) 注册重写
- CustomView
- android照相机简单实例
- hdu 2795 线段树,区间更新求补值
- 基于C#的socket编程的TCP异步实现
- 在字符串中找出连续最长的数字串
- Android--Service之Notification
- 初窥LuaJit中 --- 试用FFI
- Memcached与Redis