author:咔咔


 

继这篇源码的基础上做三种登录方式

原理:定义一个属性,将所有的登录方式的字段存起来。在循环查用户名即可​

TP5.1多种登录方式_php

源码

 

<?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;
}
}