author:咔咔
wechat:fangkangfk
继这篇源码的基础上作三种登陆方式php
原理:定义一个属性,将全部的登陆方式的字段存起来。在循环查用户名便可app
https://blog.csdn.net/fangkang7/article/details/83418641this
源码
url
<?php namespace app\service; use app\model\user\User; class UserService { // 定义多种登陆方式 private $loginWay = [ // 用户名 'user_name', // 邮箱 'user_emal', // 电话 'user_tel' ]; public function login($username,$password) { // 使用循环方式判断用户名是否存在 foreach($this->loginWay as $k=>$v){ $user = User::where([$v=>$username])->find(); // 若是存在就有这个用户,跳出 if($user){ break; } } if(!$user){ //用户名不存在 return ERROR_NO_USER; } if($user->user_status != 1){ // 用户是否被封 return ERROR_USER_START; } if(!password_verify($password,$user->user_password)){ // 密码错误,登陆失败 return ERROR_PASSWORD; } //登陆成功 return SUCCESS; } }