用网页制作个人网站,外贸平台有哪些,php网站源码免费下载,wordpress 遍历 子页面thinkphp8 从入门到放弃 引言 thinkphp* 大道至简一、 thinkphp8 安装安装Composerthinkphp 安装命令(tp-项目名称)多应用安装#xff08;一个项目不会只有一个应用#xff09;安装完文件目录如下本地部署配置伪静态好了项目可以run 二、架构服务#xff08;Service#xf… thinkphp8 从入门到放弃 引言 thinkphp* 大道至简一、 thinkphp8 安装安装Composerthinkphp 安装命令(tp-项目名称)多应用安装一个项目不会只有一个应用安装完文件目录如下本地部署配置伪静态好了项目可以run 二、架构服务Service门面(Facade)token 创建(使用php-jwt) 引言 thinkphp* 大道至简
感谢thinkphp 开发团队多年的努力 一直在更新。 TP8 看云手册-点击进入看云
一、 thinkphp8 安装
安装Composer 访问Composer官方网站https://getcomposer.org/下载适合您操作系统的安装程序。 运行安装程序Windows: 双击下载的composer-setup.exe文件然后按照向导操作。 thinkphp 安装命令(tp-项目名称) composer create-project topthink/think tp项目名称自己定义即可 多应用安装一个项目不会只有一个应用 如果要使用多应用模式你需要安装多应用模式扩展think-multi-app。 composer require topthink/think-multi-app 安装完文件目录如下 本地部署配置伪静态
IfModule mod_rewrite.c
Options FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,EPATH_INFO:$1]
/IfModule好了项目可以run 二、架构
服务Service
负责具体的业务逻辑实现将原本控制器的负责流程按模块拆分为一个个小的服务方便给控制器层组合调用一般不要跨模块调用服务服务中可以调用本模块的仓库层方法
门面(Facade)
token 创建(使用php-jwt)
PHP JWTJSON Web Token是一种用于身份验证和授权的开放标准。JWT是一个包含有关用户或实体身份信息的安全令牌它由三部分组成头部Header、载荷Payload和签名Signature。 为什么不建议你使用 JWT JWT 的生成和解码都不涉及到存储对 MySQL 或者 Redis 的访问获取所以如果你存在拉黑或禁止某生成的令牌则 JWT 不适合你的业务。 因为JWT 不涉及存储如果涉及那就不是 JWT。 千万不要为了用而用。 composer require firebase/php-jwt 安装完如下图 use \Firebase\JWT\JWT;
use \Firebase\JWT\Key;//生成验签
function signToken($uid, $type)
{$key Config::get(app.salt) . $type;//这里是自定义的一个随机字串应该写在config文件中的解密时也会用相当 于加密中常用的 盐 salt$token array(iss $key, //签发者 可以为空aud , //面象的用户可以为空iat time(), //签发时间nbf time() 3, //在什么时候jwt开始生效 这里表示生成100秒后才生效exp time() 86400, //token 过期时间data [ //记录的userid的信息这里是自已添加上去的如果有其它信息可以再添加数组的键值对uid $uid,type $type]);$jwt JWT::encode($token, $key, HS256); //根据参数生成了 tokenreturn $jwt;
}//验证token
function checkToken($token, $type)
{$key Config::get(app.salt) . $type;$status array(code -1);try {JWT::$leeway 60;//当前时间减去60把时间留点余地$decoded JWT::decode($token, new Key($key, HS256)); //HS256方式这里要和签发的时候对应$arr json_decode(json_encode($decoded), 1);$res[code] 1;$res[data] $arr[data];return $res;} catch (\Firebase\JWT\SignatureInvalidException $e) { //签名不正确$status[msg] 签名不正确;return $status;} catch (\Firebase\JWT\BeforeValidException $e) { // 签名在某个时间点之后才能用$status[msg] token失效;return $status;} catch (\Firebase\JWT\ExpiredException $e) { // token过期$status[msg] token失效;return $status;} catch (Exception $e) { //其他错误$status[msg] 未知错误;return $status;}
}