TP5.1多种登录方式

简介: TP5.1多种登录方式

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

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

https://blog.csdn.net/fangkang7/article/details/83418641

image.png

源码

<?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;
    }
}
相关文章
|
2月前
|
SQL 监控 测试技术
PTS压测问题之token值不一样配置如何解决
PTS(Performance Testing Service)是一项面向网站、应用等提供的压力测试服务,用于模拟不同场景下的用户访问,评估系统的性能表现;在进行PTS压测时,可能会出现一些异常或报错,本合集将PTS压测中频繁出现的问题及其解决办法进行汇编,旨在帮助用户更有效地进行性能测试和问题定位。
284 1
登录next cloud出现,“我们检测到您的 IP 进行了多次无效登录尝试。因此,你的下一次登录最长会延迟30秒。”问题解决
登录next cloud出现,“我们检测到您的 IP 进行了多次无效登录尝试。因此,你的下一次登录最长会延迟30秒。”问题解决
612 0
登录next cloud出现,“我们检测到您的 IP 进行了多次无效登录尝试。因此,你的下一次登录最长会延迟30秒。”问题解决
|
PHP
TP5验证规则自定义
TP5验证规则自定义
157 0
|
PHP 计算机视觉 开发者
tp5(thinkphp5)验证码不显示问题解决
tp5(thinkphp5)验证码不显示问题解决
634 0
tp5(thinkphp5)验证码不显示问题解决
|
安全 应用服务中间件 PHP
TP5.0.20 - TP5更改网站目录为/public 后运行出错解决
当程序要使用例如fopen()或file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开。 本指令不受安全模式打开或关闭的影响。
267 0
|
PHP
tp自动验证流程和返回空数组的问题
tp自动验证流程和返回空数组的问题
97 0
|
中间件
【TP5.1】使用路由进行权限验证(跟使用全局中间件验证是一样的)
【TP5.1】使用路由进行权限验证(跟使用全局中间件验证是一样的)
199 0
【TP5.1】使用路由进行权限验证(跟使用全局中间件验证是一样的)
|
缓存 中间件
【TP5.1】唯一登录
【TP5.1】唯一登录
175 0
【TP5.1】唯一登录
|
程序员 数据库
TP5.1对登录进行优化
TP5.1对登录进行优化
140 0
TP5.1对登录进行优化