自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

donjan的博客

https://github.com/donjan-deng

  • 博客(32)
  • 收藏
  • 关注

原创 《PHP微服务练兵》系列

本系列教程将从零开始使用PHP搭建微服务,涉及知识docker、mysql、ELK日志中心、minio文件储存、阿里ACM配置中心、jenkens自动化测试部署、hyperf框架、lumen框架、angular8。微服务用户中心使用基于Swoole4.4的Hyperf框架创建项目使用JWT进行用户认证实现权限管理文件储存使用lumen框架创建项目实现文件上传服务后台管理使用A...

2019-11-11 10:10:02 4506 2

原创 记录updateAppMessageShareData,updateTimelineShareData设置无效的坑

按照开发文档已设置好updateAppMessageShareDataupdateTimelineShareData接口权限微信开发工具也显示updateTimelineShareData:okupdateAppMessageShareData:ok表明设置成功,但是转发仍然无效,微信jssdk为jweixin-1.6.0.js版本1、jsApiList把旧接口也都加上wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出

2022-04-20 11:19:40 6173 10

原创 Hyperf 多进程模式下进程间的通信

单Swoole也差不多,就是监听OnPipeMessage事件和sendMessage发送消息。注册一个监听器监听OnPipeMessage和PipeMessage 事件use Hyperf\Event\Contract\ListenerInterface;use Hyperf\Framework\Event\OnPipeMessage;use Hyperf\Process\Event\PipeMessage as UserProcessPipeMessage;class OnPipeMessa

2021-08-20 09:40:24 1295

原创 Nodejs解析区块链加密猫的基因数据

以下数据皆来自这只猫https://www.cryptokitties.co/kitty/1001,需要bn.jsconst BN = require('bn.js');const hex = '00004a52931ce4085c14bdce014a0318846a0c808c60294a6314a34a1295b9ce';转为10进制const bn = new BN(hex, 16));//512955438081049600613224346938352058409509756310147

2021-05-24 10:21:41 675 5

原创 PHP&Laravel通过阿里STS临时授权访问OSS

文章目录创建子账号创建策略创建角色安装SDK获取临时凭证创建子账号云账号登录RAM控制台:https://ram.console.aliyun.com 创建一个可以编程访问的子账号,记录下AccessKey ID和AccessKey Secret。并添加AliyunSTSAssumeRoleAccess权限创建策略访问:https://ram.console.aliyun.com/policies 创建策略,这里有很多系统策略,都具有比较高的权限,咱们需要创建一个只具备上传到OSS和访问的策略

2021-04-15 11:16:45 1888

原创 Hyperf Casbin适配于Hyperf 的开源访问控制框架Casbin

仓库地址:https://github.com/donjan-deng/hyperf-casbinCasbin是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型。本项目做了Hyperf适配并自带了一个RBAC模型,使用本项目前你需要先学会如何使用Casbin。简单使用Casbin只负责访问控制,在RBAC方案中也只是储存用户和角色之间的映射关系,身份认证、管理用户列表或角色列表应由项目自身来管理。安装 composer require donjan-deng/hyperf-c

2020-11-20 14:19:56 1095

原创 17track接口逆向分析

文章目录调试分析代码另一个方法没有放修改后的完整代码,纯粹的学习,这网站不错,本来就是免费查询,还支持40个单号一起查。谁有更好方法找到_0x4f3f里内存暴破,欢迎指教啊!调试17track的快递查询接口,可以通过调试工具看到请求,但是直接通过POST工具是没有结果的,最后测试需要加上Last-Event-ID这个cookie看了网页加载的js文件,最终只有一个加密的track.min.js,而且发现非常可疑的setCookie,还有Last-Event-ID字符。第一行是个数组,接下一共两个自

2020-07-06 13:21:01 3599 3

原创 Laravel 阿里云ACM配置中心客户端

github:https://github.com/donjan-deng/laravel-acm-client该客户端实现从ACM拉取配置,存放一个配置文件acm.json到根目录。并在启动时更新配置安装 composer require donjan-deng/laravel-acm-client该包已实现自动注册service provider,你也可以手动注册,编辑config/...

2020-04-10 10:10:59 485

原创 使用Docker部署Angular项目

Docker部署Angular项目有两种方法,一种是服务端渲染,这个官方文档已有说明,另一种就是使用node镜像编译后放入web服务器。由于在node环境,所以使用express最为便捷了。创建server.jsconst express = require('express');const app = express();const config = { root: __dir...

2019-12-19 09:38:36 3208 2

原创 Angular 自定义管道pipes的使用

Angular的管道是处理数据到显示的逻辑,我们获取的用户的roles是json的数组,并不能直接展示,所以需要写一个管道展示用户所有的角色。创建src/app/helpers/pipes.ts写一个自定义管道arrayToString /** * * @param value 传入值 * @param defaultStr 默认显示 * @param split ...

2019-12-18 10:46:27 620

原创 Angular 自定义结构型指令structural directive的使用

Angular的结构型指令的职责是 HTML 布局。 它们塑造或重塑 DOM 的结构,比如添加、移除或维护这些元素。说白了就是对网页的结构进行控制,NgIf,NgFor都是结构型指令。创建src/app/helpers/directive.ts写一个结构指令appCan@Directive({ selector: '[appCan]' })export class CanDirective ...

2019-12-18 10:34:14 585

原创 Angular使用Interceptor(拦截器)请求添加token并统一处理API错误

前后端分离的项目,大多都是无状态的,我们使用JSON Web Tokens进行身份验证,但是每次请求都手动添加token这种事情是不可能做的,因为懒,这里就要用到拦截器Interceptor创建src/app/app-auth-interceptor.module.ts实现拦截器在src/app/app-routing.module.ts导入import { AuthInterceptor ...

2019-12-18 10:07:22 4396

原创 Angular使用RouteReuseStrategy(路由复用策略)实现后台TAB标签

我们后台TAB标签切换的时候需要保存原标签页的状态,当再次切换回来的时候仍然一致,这里就要用到路由复用策略保存快照。抽象类RouteReuseStrategy在@angular/router包abstract class RouteReuseStrategy { abstract shouldDetach(route: ActivatedRouteSnapshot): boolean ...

2019-12-18 09:53:03 1570 1

原创 使用Angular 8 创建项目

环境需求Node.js 10.9.0 或更高版本安装 Angular CLInpm install -g @angular/cli创建项目ng new la-manage # 接下来的选择,我都是默认安装Ant Design UIcd la-manageng add ng-zorro-antd选项? Add icon assets [ Detail: https://ng...

2019-12-17 16:10:21 726

原创 Hyperf使用hyperf-permission组件实现权限管理

照说明安装组件https://github.com/donjan-deng/hyperf-permission接口实现RESTful,我的权限节点的组成为/app_name/path/method比如/user-center/users/get 获取用户列表/user-center/users/put 更新用户具体详见数据填充类permission_table_seeder.php...

2019-12-17 16:03:17 2489

原创 Ant Design of Angular NG-ZORRO 增加Bootstrap按钮样式

ANG-ZORRO UI功能比较全面,也非常好上手,但按钮的样式太少了,想像Bootstrap那样多几个状态按钮。打开src的theme.less 添加按钮样式:.ant-btn-warning{ color: rgba(0, 0, 0, 0.65); background-color:#fffbe6; border-color:#ffe58f}.ant-btn-info{ ...

2019-12-12 15:15:03 963

原创 Hyperf权限管理组件hyperf-permission发布

GITHUB:https://github.com/donjan-deng/hyperf-permission 欢迎star,欢迎pr.Hyperf权限管理组件spatie/laravel-permission 的Hyperf版与spatie/laravel-permission的区别无中间件,Hyperf目前还没有Auth组件,请自行创建中间件命令行只保留清除缓存php bin/hy...

2019-12-06 16:50:03 1103

原创 Nginx代理设置

生成kibana的访问账号生成一个密码openssl passwd '123456'在Portainer创建一个htpasswd的Config,前面为用户名,后面为上面生成的密码user1:Iv64DdYe3QxLg创建Nginx配置文件接下来再创建一个nginx配置文件default.conf创建服务...

2019-12-02 13:06:38 288

原创 Jenkins+Docker+GIT持续集成

文章目录准备工作编写Dockerfile安装Jenkens添加一个全局凭据保存阿里云镜像仓库的账号密码添加API Token去掉跨站点请求安全设置编写Jenkinsfile添加流水线Jenkens、Docker Hub、Github集成是非常简单的一条龙服务,但我们大部分时间使用的是国内Git仓库,并且源码为私有。这篇文章介绍的是通过Git仓库的Webhooks通知Jenkens执行构建并发布到...

2019-11-27 14:58:47 808

原创 Hyperf接入阿里ACM配置中心

后期更改配置有两种方法,一是使用Docker Swarm Config,这个在部署章节有说明。二就是使用在线的配置中心,这里介绍阿里的ACM。注册阿里云并开通ACM https://acm.console.aliyun.com创建一个子帐号,并获取AccessKeyID和AccessKeySecret,这个自行参考阿里的帮助文档。我们在默认空间下创建一个配置Data ID:hyperf.e...

2019-11-26 16:35:06 1640

原创 Lumen日志接入elasticsearch

日志分析系统的安装请看部署章节,安装elasticsearch组件composer require elasticsearch/elasticsearch修改config/logging.php添加一个elasticsearch配置'elasticsearch' => [ 'driver' => 'monolog', 'handler' => Monolo...

2019-11-26 15:55:16 954

原创 Elasticsearch+Kibana日志分析系统搭建

由于我们的服务分布在各个节点,日志写入本地已经不能很好的访问了,所以需要一个日志中心集中分析日志,本来Elasticsearch+Kibana+Logstash是一整套,但我们目前使用的两个框架已经可以直接写入日志到Elasticsearch,所以不需要Logstash了。安装Elasticsearch在管理节点主机新建一个目录储存数据mkdir -p /home/data/elastics...

2019-11-26 14:13:19 792

原创 使用Docker 搭建 minio 文件储存

在宿主机创建一个目录存放文件和配置文件mkdir -p /home/data/minio/datamkdir -p /home/data/minio/configchmod 777 /home/data/minio/data创建容器,上传文件需要外部访问,这里我们映射了主机端口9001到容器9000端口docker run -d --restart always \ -p 900...

2019-11-26 13:38:52 3552

原创 Docker Swarm 集群搭建

文章目录环境介绍安装Docker打开端口创建集群创建私有网络安装Portainer面板安装MYSQL和Redis环境介绍我的两台虚拟主机主机名centos IP 192.168.137.200 为管理节点主机名node1 IP 192.168.137.2 为普通节点系统为Centos 7 64位安装Docker分别在两台主机里安装Dockercurl -sSL https://...

2019-11-26 10:25:21 544

原创 访问用户中心实现认证

首先我们创建config/service.php用于配置微服务地址。在bootstrap/app.php 注册该配置$app->configure('service');在.env文件增加SERVICE_USER_CENTER=http://192.168.137.200:9504这样我们就可能使用config('service.user_center');获得用户中心的...

2019-11-22 15:01:46 626

原创 lumen文件上传设置

安装flysystem组件composer require league/flysystem创建配置文件https://github.com/donjan-deng/la-storage/blob/master/config/filesystems.php,这里我们配置为支持Amazon S3协议的云储存,后面我们将搭建一个支持S3协议的私有云储存。return [ 'defaul...

2019-11-22 14:57:33 1211

原创 使用lumen框架创建项目

lumen 6需要PHP >= 7.2,我们仍然使用docker进行开发,我制作了一个基于PHP 7.3的镜像,直接拉来用就可以了docker run -d --name php-apache-dev \ --restart=always \ -v /home/wwwroot:/app \ -p 3000:80 \ donjan/php-apache-dev:7.3.10...

2019-11-21 09:40:48 1142

原创 la-admin发布,基于Laravel 6 和 Angular 8 的通用后台

GITHUB:https://github.com/donjan-deng/la-admin环境需求Node.js >= 10.9.0PHP >= 7.2.0BCMath PHP 拓展Ctype PHP 拓展JSON PHP 拓展Mbstring PHP 拓展OpenSSL PHP 拓展PDO PHP 拓展Tokenizer PHP 拓展XML PHP 拓展...

2019-11-20 10:39:55 609

原创 Hyperf框架创建json-rpc服务

我们创建一个User服务供其他服务调用以实现认证和鉴权。创建文件UserService.phpcheckToken 方法接收两个参数,一个token,一个permission,首先验证token获得user,对user的鉴权将在以后的权限认证教程补充。如果认证成功,将返回user.在配置文件server.php增加一个json-rpc服务,监听端口为9504[ 'name' =&...

2019-11-12 13:51:19 3208 4

原创 Hyperf框架使用JWT进行用户认证

配置上一篇文章中我们已经安装好phper666/jwt-auth组件,并发布了配置。配置文件config/autoload/jwt.php已经有详细配置说明,如果要改默认设置,只需要在.env文件中加入相应的配置项,比如要更改默认的secret,只需要在.env文件加入JWT_SECRET = your secret这里我们全部使用默认配置。自定义异常处理添加TokenValidExce...

2019-11-12 10:38:15 6166 1

原创 使用Docker创建Hyperf项目

安装Hyperf开发容器docker run -d --name user_center \ --restart=always \ -v /home/wwwroot/user_center:/hyperf-skeleton \ #映射到宿主机目录,这样我们就直接在/home/wwwroot/user_center开发 -p 9501:9501 -p 9504:9504 \ # 950...

2019-11-11 14:16:04 6755

原创 开发环境配置

教程所使用的开发环境Centos 7 64位Docker 19.03.2MYSQL 8.0.18安装一个MYSQL容器docker run -d --name mysql8 \ -p 3306:3306 \ #映射3306端口到主机 --restart=always \ #自启动 -v /home/docker/mysql8:/var/lib/mysql \ #映射数据...

2019-11-11 10:33:10 895

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除