nginx+lua在帐号系统中的应用

我们的帐号系统要应用到多个产品里,所以设计的系统需要满足高并发的特性。项目A更新密码,项目B就得下一次触发接口时,自动登出。

我们帐号系统没有使用Oauth2.0,而是采用了简单的JWT(Json Web Token)的方式来处理的用户认证。所以,帐号系统要提供一个验证用户密码修改的API。

这里就不展开讲jwt了。不了解的可以去google。jwt一共三段:xxx.yyy.zzz, 我们把重要的信息放在payload中,也就是yyy的位置,可以通过base64解码,类似于我们在session存的用户信息。payload也可以做加密处理。

payload一般里面会有一些默认的[……]

Read more

{ Add a Comment }

vim plug插件管理,更好的管理vim插件,关键是提速了

先上一张效果图吧:

 

最近重新整理了vim的插件管理方式。vim升级到vim8,支持了异步,比如语法的检测异步了,vim-plug支持插件可以并行安装,还有之前的插件问题,都找到了新的替代方案。vim-plug一个韩国人写的插件,棒棒的。vim的启动速度也变快了,检测命令:vim --startup vim.log

配置如下:

 

View the code on Gist.

 

{ Add a Comment }

javascript 作用域产生的一些影响

 

JavaScript作用域范围跟其他语言比如PHP,C等的块作用不同,它是函数级别的。举个例子就知道了。

View the code on Gist.

上面这个代码块会打印五个  5 出来,而我们预想的结果是打印 0 1 2 3 4。

 

之所以会这样,是因为 setTimeout 中的 i 是对外层 i 的引用。当 setTimeout 的代码被解释的时候,运行时只是记录了 i 的引用,而不是值。而当 setTimeout 被触发时,五个 setTimeout 中的 i 同时[……]

Read more

{ Add a Comment }

vue-datasource使用心得

这个组件首次使用就发现bug了。我就fix了。并提交了pr

效果图:

 

第二张效果图:

 

vue包安装工具yarn类似composer。  比npm安装速度快多了。

 

View the code on Gist.

 

接口调用处理的不是很好,后期可以用vuex就行重构。官方的购物车的例子

 

https://github.com/coderdiaz/vue-datasource/blob/master/src/utils/DatasourceUtils.[……]

Read more

{ Add a Comment }

vue使用感受

 

 

目前后台用的laravel框架搭建的。想用vue.js写前端。

展示先效果图:

navbar和siderbar用vue实现的。

 

View the code on Gist.

 

 

View the code on Gist.

 

View the code on Gist.

 

View the code on Gist.

 

感觉vue.js比简单,复用性及可维护性比较强。

 

{ Add a Comment }

MySQL 容器化方案(依托阿里云)

制作镜像(MySQL):

创建一个dockerfile文件:

View the code on Gist.

 

上传阿里云,走内网比较快。如下:

 

 

使用阿里云的容器编排:

View the code on Gist.

 

 

基于上面的MySQL容器我们已只读的方式备份。

我们还是基于MySQL:5.7.17的镜像制作(example-group/backup-mysql),然后,存到阿里云上。

过程:需要从percona官方package的源。然后apt-get install[……]

Read more

{ Add a Comment }

web服务中的http重定向到https

nginx可以从配置文件监控80端口,301 跳转到 https。

代码如下:

 

还有一种就是判断schema, 利用if 判断http 。但是nginx官网不推荐这种处理方式。具体的可以去网上搜下。

 

还有一种就是代码层面的保证全局都是https。我们一个的laravel框架5.4版本。

 

laravel不同版本处理方式,可能不一样。具体的可以网上去搜索。

{ Add a Comment }

清空请求日志中的重要信息

前几天发一下,线上日志中能看到用户注册和登录时,填写的密码,准备处理下。

这个功能是一个同事开发的,我在良好的设计下,简单处理了下,就做了有个全局重要字段过来的功能。

从截图上看,是不是非常方便。

那秀一下代码吧:

看完代码是不是很简单。

{ Add a Comment }

go的[]byte跟string有什么区别?

摘抄代码:

同时,[]byte和string可以互相转换 string(byteParam)

{ Add a Comment }