用户后台管理模块
<h2>功能点</h2>
<ul>
<li>后端登录
<ul>
<li>后端用户表结构设计</li>
<li>模板引入</li>
<li>验证码接入</li>
<li>登录功能编码</li>
</ul></li>
<li>前端登录
<ul>
<li>前后端分离</li>
<li>前端vue</li>
<li>后端API</li>
<li>获取验证码</li>
<li>登录逻辑开发</li>
</ul></li>
</ul>
<h2>登录页面</h2>
<ul>
<li>ajax
<ul>
<li>参数校验</li>
<li>获取用户信息</li>
<li>判断密码是否正确</li>
<li>数据表更新</li>
<li>session存储</li>
<li>页面跳转</li>
</ul></li>
</ul>
<h2>用户操作</h2>
<ul>
<li>
<p>获取验证码</p>
<ul>
<li>API</li>
<li>生成6位数字的验证码</li>
<li>请求短信服务</li>
<li>记录redis缓存</li>
</ul>
</li>
<li>输入验证码
<ul>
<li>点击登录</li>
<li>API
<ul>
<li>根据手机号获取</li>
<li>验证码数据</li>
<li>短信验证校验</li>
<li>登录成功或失败</li>
</ul></li>
</ul></li>
</ul>
<h2>页面使用layui</h2>
<h2>安装模板引擎</h2>
<pre><code class="language-she">composer require topthink/think-view</code></pre>
<ul>
<li>
<p>安装后的目录位置:/vendor/topthink/think-view/</p>
<ul>
<li>调用验证码方法</li>
</ul>
<pre><code class="language-php">// /vendor/topthink/think-captcha/src/helper.php
captcha_img() // 验证码图片</code></pre>
</li>
<li>
<p>验证码访问url</p>
<ul>
<li>域名/验证码方法</li>
</ul>
<pre><code class="language-php">// /vendor/topthink/think-captcha/src/CaptchaController.php
index()</code></pre>
</li>
<li>
<p>自定义验证码</p>
<ul>
<li>
<p>域名/admin/Verify/index</p>
</li>
<li>/app/admin/controller/Verify.php</li>
</ul>
<pre><code class="language-php">namespace app\admin\controller;
use think\captcha\facade\Captcha;
class Verify {
public function index() {
return Captcha::create("captcha_info");
}
}</code></pre>
<ul>
<li>位置文件配置验证码</li>
</ul>
<pre><code class="language-php">// /config/captcha.php
'captcha_info' => [
'length' => 3,
// 验证码字符集合
'codeSet' => '1234567890',
],</code></pre>
</li>
</ul>
<h2>验证码校验</h2>
<ul>
<li>要开启session,thinkphp6默认没有开启seesion</li>
</ul>
<pre><code class="language-php">captcha_check(); </code></pre>
<ul>
<li>开启seesion,去掉注释即可
<ul>
<li>/app/middleware.php</li>
<li>Session初始化</li>
<li>\think\middleware\SessionInit::class</li>
</ul></li>
</ul>
<h2>跳转方法要写在控制器内</h2>
<ul>
<li>
<p>业务逻辑控制器内,不能写基类控制器,会形成死循环的</p>
<pre><code class="language-php">return redirect(); // 中间件中也可以使用此方法</code></pre>
</li>
</ul>
<h2>中间件</h2>
<ul>
<li>中间件主要用于拦截或过滤应用的HTTP请求,并进行必要的业务处理
<ul>
<li>位置->架构->中间件</li>
<li><a href="https://www.kancloud.cn/manual/thinkphp6_0/1037493">https://www.kancloud.cn/manual/thinkphp6_0/1037493</a></li>
</ul></li>
<li>中间使用场景
<ul>
<li>管理后台登录,登录访问操作在中间件中进行处理,登录成功后,再跳转到登录页面</li>
</ul></li>
<li>执行流程
<ul>
<li>使用断点调用方式查看执行流程</li>
<li>可以分别在控制器方法中输出,两条语句,再在中间件输出一条语句,查看一下执行流程</li>
</ul></li>
<li>中间件
<ul>
<li>可以简单大概理解为,在一个控制器方法执行流程中间执行调用</li>
</ul></li>
<li>前置中间件获取不到,request请求信息,后置中间件可以获取到request请求信息,前置和后置中间件根据实际业务逻辑选择使用业务场景</li>
</ul>
<h2>声明强制类型,在调用方法传参数时,参数类型必须严格对应</h2>
<pre><code class="language-php">declare (strict_types = 1);
// 如:调用方法参数为int类型,只能传int类型</code></pre>
<h2>validate验证机制</h2>
<ul>
<li><a href="https://www.kancloud.cn/manual/thinkphp6_0/1037624">https://www.kancloud.cn/manual/thinkphp6_0/1037624</a></li>
<li>使用validate及方法查看</li>
</ul>
<pre><code class="language-php">use think\Validate;</code></pre>
<p> </p>