tp6之多应用下的路由访问与登陆验证

首先今天解决了一个路由上的问题,因为tp6是多应用模式,导致全局的那个配置路由似乎不起作用,只有那个hello函数能生效,下面的怎么配都不行。而且默认访问的似乎一直是index下的内容,而修改默认访问路径怕出现其他问题,也不敢动。浏览器搜了好多人症状跟我这个一样,但是每个人的解决方法都不同,我也试了直接在Admin下单独创建路由,但是还是绕不过Admin这个坎。于是便有了我下面的解决方案:
目标:通过输入域名直接能访问到网站,而不是“域名/admin”
方案:如图,需要说明的是如果像我一样用的是修改别人tp5的代码,一定要记得在controller文件中改一些代码,这就不细说了。
在这里插入图片描述

  • 今天开始研究业务逻辑之登陆验证

前端对验证码的描述,其中知识点有:

  <input name="verify" required="required" class="input-text size-L" type="text" 
  placeholder="验证码"  style="width:150px;">
          <img style="height: 42px;width: 193px;" id="captcha"  src="
          {:url('Index/Login/verify')}" alt="captcha" onclick="refreshVerify()"/>
          <a style="margin-left: 200px;" href="javascript:refreshVerify();">
          看不清,换一张</a>
  1. input中required=“required” 的意思是:“必填字段,不填会报错”。
  2. src里的url对应的是后端文件里的东西
  3. 刷新二维码的函数:
 function refreshVerify() {
    let ts = Date.parse(new Date())/1000;
    console.log(ts);
    $('#captcha').attr("src", "{:url('Index/Login/verify')}?"+Math.random());
  }
  1. 关于状态码:200 OK 请求成功。一般用于GET与POST请求
    400 Bad Request 客户端请求的语法错误,服务器无法理解
      //在这里执行表单提交
        $(form).ajaxSubmit({
          type: "post",
          dataType: "json",
          url: "{:url('Login/login')}",
          data: {
            "password":md5("pwwz"+$('input[name="password"]').val()+"aino").toString()
          },
          success: function (res) {
            console.log(res.datas);
            // return true;
            if (res.code == 200) {
              top.layer.msg(res.msg , {icon: 1, time: 3000});
              location.replace("{:url('common/index')}")
            }
            if (res.code == 400) {
              top.layer.msg(res.msg , {icon: 0, time: 3000});
            }
          },
          error: function (res) {
            layer.msg(res.msg, {icon: 0, time: 3000});
          },
        });

在后端代码中,有以下几点需要看的:

  1. 安装验证码库之后就可以直接生成了
//验证码生成
    public function verify()
    {

        return captcha::create();
    }
public function login()
    {
        if ($this->request->isPost()) {
            $posts = $this->request->post();
//             dump($posts);
            if(!captcha_check($posts["verify"])){
                return $this->returnMsg(400, "验证码错误,验证码已过期!");
            };

            //管理员/开发人员跳转

            if ($posts["auth"] == 10) {
                $userdata = Db::table('adminer')->where("jobnum", $posts['username'])->find();
                if ($userdata) {
                    if ($this->mmd5($posts["password"]) == $userdata["password"]) {
                        session("username", $userdata["name"]);
                        session("ad_id", $userdata["ad_id"]);
                        session("ac_id", null);
                        session("type", 1);//视频,文章,通知的标志:1-学校 0-学院
                        return $this->returnMsg(200, "登录成功");
                    } else {
                        return $this->returnMsg(400, "用户名不存在或密码错误!");
                    }
                } else {
                    return $this->returnMsg(400, "用户名不存在或密码错误!");
                }
            } //实验员跳转
            else if ($posts["auth"] == 5) {
                $userdata = Db::table("teacher_acader")->where("jobnum", $posts["username"])->where("type", 1)->find();
                if ($userdata) {
                    if ($this->mmd5($posts["password"]) == $userdata["password"]) {
                        session("username", $userdata["name"]);
                        session("ac_id", $userdata["ac_id"]);
                        session("ta_id", $userdata["ta_id"]);
                        session("type", 0);
                        return $this->returnMsg(200, "登录成功");
                    } else {
                        return $this->returnMsg(400, "用户名不存在或密码错误!");
                    }
                } else {
                    return $this->returnMsg(400, "用户名不存在或密码错误!");
                }
            }
        }
        return View::fetch("common/login");
    }


    //json格式返回信息
    public function returnMsg($code, $msg = "", $data = [])
    {
        $return_data["code"] = $code;
        $return_data["msg"] = $msg;
        $return_data["datas"] = $data;
        return json($return_data);
    }

    private function mmd5($password)
    {
        $before = "*&%^$#%^&&*44adgg^%^asdfg1*_sbea36";
        $after = "*4aha@$#%^%&15165(*&%$+-15sgsfdg15";
        return md5($before . $password . $after);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JJpZh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值