Laravel—用户认证系统(一)
2018-01-17 17:20
525 查看
laravel有自带的一系列完整的流程,在前后端分离的情况,后端不是会调用视图层的
最终的目的:接受数据,并返回数据的处理结果
最终的目的:接受数据,并返回数据的处理结果
注册
流程: 接受数据--->验证数据--->调用模型,存入数据---> 返回处理结果use App\Model\Frontend\Member; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Auth; ... public function register() { $send = ['state' => false, 'error' => $this->error['100']]; $params = $this->req->all(); $retCheck = $this->checkRegMsg($params); if (!$retCheck) { $send['error'] = $this->error['101']; } if ($this->create($params)) { unset($send['error']); $send['state'] = true; } return response()->json($send); } private function checkRegMsg($data) { $rules = [ 'name' => 'required|string|max:255', 'password' => 'required|string|min:6', 'mobile' => 'required|string|max:255|unique:member', 'email' => 'required|string|email|max:255|unique:member' ]; $validator = Validator::make($data, $rules); return $validator->fails() ? false : true; } // 通过Member模型,插入数据库 private function create(array $data) { $pwd = $data['password'] ? '123456' : $data['password']; $user = Member::create([ 'name' => $data['name'], 'password' => bcrypt($pwd), 'email' => $data['email'], 'mobile' => $data['mobile'], ]); return $user->id ?: false; }
登录
流程:接受数据--->--->验证数据--->登录限制检测--->匹配用户模型--->返回处理结果use App\Model\Frontend\Member; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Auth; use Illuminate\Foundation\Auth\ThrottlesLogins; ... // Laravel自带的一个登录Trait use ThrottlesLogins; // 最终的登录操作,是交给Laravel的guard处理,如果不指定,默认使用web也就是sessionguard public function login() { $send = ['state' => false, 'error' => $this->error['100']]; $params = $this->req->all(); $retCheck = $this->checkLoginMsg($params); if (!$retCheck) { $send['error'] = $this->error['101']; } if ($this->hasTooManyLoginAttempts($this->req)) { $send['error'] = $this->error['102']; } $remember = $this->req->remember ?: false; // 此处是调用SessionGuard类的attemp方法,如果验证通过,将会执行登录操作 $retLogin = Auth::guard('web')->attempt([ 'mobile' => $this->req->mobile, 'password' => $this->req->password ], $remember); if ($retLogin) { unset($send['error']); $send['state'] = true; } return response()->json($send); } // 验证方法与注册时的类似
退出
// 清理用户的登录信息以及session public function logout() { Auth::logout(); $ret = $this->req->session()->invalidate(); $state = $ret ?? true; return ['state' => $state]; }
相关文章推荐
- Laravel多用户认证系统示例详解
- laravel的用户认证系统-手动认证用户
- Laravel 5.3 不同用户表登录认证-优化
- Laravel 5.2 使用 JWT 完成多用户认证
- 基于 Laravel (5.1) & Ember.js (1.13.0) 的用户授权系统
- Windows用户认证系统之Gina、CP和pGina简介(一)
- web系统用户认证的密码摘要
- 实战部署MySQL用户认证的Postfix邮件系统(3)
- Linux下基于LDAP集中系统用户认证系统
- 基于laravel开发的多用户博客系统(二)
- D django 用户认证系统
- Centos 6.5上Apache + PAM + SVN服务安装配置(使用本地系统用户认证)
- [李景山php]每天laravel[036]-laravel 系统服务 --- 认证-1
- Laravel用户授权系统的使用方法示例
- 继续摘抄:教你用PHP写MySQL数据库的用户认证系统
- Laravel 5框架学习之用户认证
- 【laravel54】关于用户权限认证RBAC和无限极分类
- 教你用PHP写MySQL数据库用户认证系统
- 社群系统ThinkSNS+ APP更新至V0.8.3---新增打赏、用户认证
- 【WebMisCentral WMC】基于Extjs 4.2x的企业级用户授权认证中心系统(SSO+AM+SM),多租户SAAS应用