Lei Xia

Sr. Software Engineer | Solution Architect

抒写代码,尽享生活,筑就未来。

订阅 · 赞赏

avatar

php实现扫描二维码登录网站

2015年9月17日 · 8 字 · 1 分钟

扫描二维码登录对于现在的web应用来说,确实是个很炫酷的功能,安全性也可以保障,不少朋友可能觉得这是个很复杂的工作,其实不然,真正说来只有几个步骤而已。 原理 PC浏览器展示一张二维码图片,该图片二维码值为一段绝对地址的url,大致如下:http://www.example.com/oauth/qrcode?key=key PC浏览器定期轮询 http://www.example.com/oauth/query,可能有的同学会问,怎么不用带上key?这里我们用session来保存key,所以链接中不用带上key,将这个key作为服务端的缓存key且值为空,如果该缓存值为空,证明没被扫描,继续轮询,如果已经被扫描,展示扫描结果。 手机微信扫描之后会直接访问http://www.

angularjs ng-options第一个选项为空的解决方案

2015年9月2日 · 17 字 · 1 分钟

angularjs的ng-options渲染到页面上的时候结构大致是这样的。 <select> <option value=""></option> <option value="1">北京</option> </select> 这样会导致select第一行为空,用户体验很差。所以改造后的代码如下

JS函数不同执行环境下的this指向

2015年8月20日 · 52 字 · 1 分钟

JavaScript中this指向一直是一个难点,也是一个重点,本文研究Node.js与浏览器环境下this指向的不同之处。 先来看一段代码 var length = 10; function fn() { console.

php-fpm sock文件权限问题导致502

2015年8月14日 · 103 字 · 1 分钟

今天升级完PHP出现了502 Bad Gateway错误,根据经验是php-fpm的问题,但是看到网上那些什么访问量,子进程设置什么的,但是我这太服务器压根没啥流量。所以只能从配置文件下手看看。 php-fpm.conf [global] pid = /usr/local/php/var/run/php-fpm.

angularjs 用户认证解决方案

2015年7月30日 · 216 字 · 2 分钟

作为一个全栈ajax的mvvm框架,angularjs可谓如火如荼,可真正做到全栈ajax,首要面对的问题就是用户身份验证。 本文的身份验证不采用cookie,而采用基于http Authorize 请求头的方式验证用户,此方式能做到永远只有一个用户同时在线(服务端同一时间只会接受一个合法的token请求,其他的请求返回401)。 Service app.

angularjs集成requirejs

2015年7月22日 · 155 字 · 1 分钟

angularjs自带的模块话机制对于业务逻辑的组织确实起到了规范化的作用,但是对于大型web项目,弊端也出来了,一次性加载所有的资源会导致进入应用的时间变长,而实际上,首页需要加载的并不多,所以,本文将介绍如何使用requireJs与angularJs集成。 依赖 jquery(非必须) angularjs ui-router requirejs 入口文件 我们知道,使用requireJs之后,在首页只需使用script标签加载requirejs即可,剩下的文件加载需要配置下入口文件。

移动端input和textarea宽度不一致的问题

2015年7月5日 · 29 字 · 1 分钟

今天在做写一个IOS端的表单时,尽管input,textarea设置了宽度,结果发现真机浏览的时候发现宽度不一致,有图为证 css input, textarea { border-radius: 4px; border: 1px solid #4f4f4f; font-size: 24px; background: none; outline: 0; width: 283px; -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .

angularjs指令实现radioGroup

2015年7月1日 · 153 字 · 1 分钟

angularjs的指令系统其实也是很强大的东西,扩展了HTML的表现力。本文讲的是如何用angularjs指令实现radioGroup,自带的radio只能控制ngModel的两种状态: true/false。 指令代码 module.directive('radio', [function() { return { transclude: true, replace: true, template: '<div class="ui ui-radio"><span class="radio-item"></span><span ng-transclude="" class="common-color"></span></div>', require: 'ngModel', link: function(scope, ele, attrs, ctrl) { ctrl.

lnmp一键安装memcached的shell脚本

2015年5月29日 · 35 字 · 1 分钟

通过LNMP安装脚本安装的PHP环境默认是不带Memcached支持的(是memcached不是memcache),百度一下memcached的安装方法,发现基本都是memcache的,其实这是两个不同的东西。 而memcached是pecl的项目,所以需要到pecl网站上去下载最新的memcached安装包。 为了方便多台服务器的安装,本人整理成了一个sh脚本进行安装,当然,php-config路径和phpize路径需要改下(如果使用LNMP脚本安装的话则不用改) #!/bin/bash wget https://launchpad.