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;
    }
}
相关文章
|
数据可视化 关系型数据库 定位技术
全面支持国产部署,阿里云DataV重磅推出空间数据新方案!
全面支持国产部署,阿里云DataV重磅推出空间数据新方案!
|
机器学习/深度学习 人工智能 开发者
Python适合做游戏吗?
【7月更文挑战第2天】Python适合做游戏吗?
557 56
|
API
解决http下navigator.clipboard为undefined问题
总之,要解决 `navigator.clipboard`为 `undefined`的问题,你需要确保遵循浏览器的安全策略,使用HTTPS,获得用户授权,并在受信任的上下文中使用clipboard API。此外,还要确保你的代码在支持该API的浏览器上运行。如果问题仍然存在,可能需要进一步调查特定浏览器和环境的问题。
2522 3
|
XML JavaScript API
DOM 和 SAX 解析器之间的区别
【8月更文挑战第22天】
334 0
|
存储 缓存 移动开发
PixiJS源码分析系列:第三章 使用 canvas 作为渲染器
PixiJS源码分析系列:第三章 使用 canvas 作为渲染器
|
存储 关系型数据库 MySQL
Python导入Excel数据到MySQL数据库
Python导入Excel数据到MySQL数据库
1161 1
|
JSON 前端开发 JavaScript
Layui动态树详解
Layui动态树详解
376 0
Parsing error: No Babel config file detected for XXXXX
Parsing error: No Babel config file detected for XXXXX
|
Dubbo Java 应用服务中间件
Spring Cloud Alibaba & Spring Cloud 整合Dubbo和Nacos
目录 一、Spring Cloud Alibaba依赖说明 二、代码示例 1、父工程spring-cloud-alibaba-learning版本依赖信息 2、子工程spring-cloud-alibaba-seata-consumer服务消费者 (1) 版本依赖 (2) application.yml配置 (3) Dubbo服务引用 (4) 启动类 3、子工程spring-cloud-alibaba-seata-provider服务提供者 (1) 版本依赖 (2) application.yml配置 (3) 服务实现类 (4) 启动类 三、启动服务&查看Nacos控制台 四、总结
Spring Cloud Alibaba & Spring Cloud 整合Dubbo和Nacos
|
人工智能 运维 Cloud Native
预约直播 | 突破规模化运维瓶颈--SREWorks云原生数智运维平台揭秘
阿里云AI技术分享会第九期《突破规模化运维瓶颈--SREWorks云原生数智运维平台揭秘》将在2023年3月29日晚18:00开启直播,精彩不容错过。
预约直播 | 突破规模化运维瓶颈--SREWorks云原生数智运维平台揭秘