JSON Web Token(JWT)简介
最近接触Google oauth api,里面有部分数据使用了JWT规范。特意查询了相关的资料。JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。
让我们来假想一下一个场景。在A用户关注了B用户的时候,系统发邮件给B用户,并且附有一个链接“点此关注A用户”。链接的地址可以是这样的
1http://www.pangxieke.com/make-friend/?from_user=B&target_user=A
上面的URL主要通过URL来描述这个当然这样做有一个弊端,那就是要求用户B用户是一定要先登录的。可不可以简化这个流程,让B用户不用登录就可以完成这个操作。JWT就允许我们做到这点。
JWT的组成一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。
载荷(Payload)我们先将上面的添加好友的操作描述成一个JSON对象。其中添加了一些其他的信息,帮助今后收到这个JWT的服务器理解这个JWT。
123456789{ "iss": "John ...
图标字体化
前几天,想在网站上加一些icon,想参考其他网站,发现有些网站的写法是这样的
12345678910111213141516<style>.fa { display: inline-block; font: 14px/1 FontAwesome; font-size: inherit; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}.fa-facebook-square:before { content: "\f082";}</style><a href="https://www.facebook.com/DJI" target="_blank" class="social-item"> <i class="fa fa-faceboo ...
网站集成QQ客服
现在越来越多的网站都为了体验更好。更快速便捷的建立起和用户连接的桥梁。现在QQ客服是比较流行的。首先省去了繁琐的开发成本,另外聊天系统也节省了服务器资源,最最重要的是,QQ人人都有最大限度的方便了用户和企业。对于那些小网站可谓是一大福音。
1、html关键代码1<a href="http://wpa.qq.com/msgrd?v=3&uin=qq号码&site=qq&menu=yes">点击开始QQ交谈/留言</a>
2、qq账号开通权限用你客服QQ登录http://shang.qq.com/v3/widget.html
开通功能,也可以设置自动回复功能
记得点击一下保存
参考文章dodobook:开启QQ客服,设置QQ接收陌生人临时会话,自动回复的方法
使用data url对小图片优化
1、淘宝src写法今天偶然看到淘宝页面,发现img有一种奇怪的写法,如下
1<img class="J_MemberAvatar member-avatar" src="data:image/png;base64,iVBORwi+vr7+">
2、常用src写法图片在网页中的使用方法通常是下面这种利用img标记的形式:
1<img src="images/myimage.gif ">
这种方式中,img标记的src属性指定了一个远程服务器上的资源。当网页加载到浏览器中 时,浏览器会针对每个外部资源都向服务器发送一次拉取资源请求,占用网络资源。大多数的浏览器都有一个并发请求数不能超过4个的限制。这意味着,如果一个 网页里嵌入了过多的外部资源,这些请求会导致整个页面的加载延迟。
3、原理淘宝,使用Data URL技术,图片数据以base64字符串格式嵌入到了页面中,与HTML成为一体。Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息。比较常见的 ...
服务器签名关闭
今天对网站的SEO进行了了解,发现服务器签名也是一块值得优化和重视的地方。网站服务器签名以及服务器/PHP版本信息是敏感信息,应该将这些信息隐藏,否则无异于将系统的已知安全漏洞告诉给了攻击者。因而,建议禁用所有的网站服务器签名。
禁用服务器签名只要Apache网站服务器返回出错页面(比如404 not found或403 access forbidden pages),它就会在页面底部显示网站服务器签名(比如Apache版本号和操作系统信息)。此外,当Apache网站服务器打开任何PHP页面时,同样会显示PHP版本信息。该如何关闭Apache网站服务器中的这些网站服务器签名?
其实很简单,只需要修改配置文件httpd.conf
123#将下面这两行添加到Apache配置文件的末尾处:ServerSignature OffServerTokens Prod
“ServerSignature Off”让Apache2网站服务器隐藏任何出错页面上的Apache版本信息。
“ServerTokens Prod”的作用是,抑制HTTP响应头中的服务器令牌,不显示显示Apache版本号 ...
联想mixx4体验
螃蟹最近笔记本坏了,一直想买了个笔记本。二合一是趋势,而且个人少玩游戏,对轻薄便携比较重视。所以想买个二合一的笔记本电脑。在微软surface pro4和华为matebook中犹豫了很久,只是苏菲婆一直觉得有点小贵。
而matebook欧洲发布后,一直没在国内发布上市。等了2个多月,5月26matebook发布,最低售价却4999,带键盘而不带笔,有点失望。打算去实体店体验后再作觉得。
但偶然发现京东联想mixx4预约活动。M3,4G内存,128G的SSD裸机版本是2999,带键盘和笔是3999,就预约了后者。因为mixx4自带支架,而且支架转轴技术听说是联想的专利,叫做铰链。能够150度翻转,确实比华为matebook方便。而且有2个USB接口,1个mini的HDMI接口,比较实用。
所以京东上5.30预约联想mixx4。6月1日早上9点开抢,可惜一直没抢到。尝试用手机登录,结果由于很少用京东,而且从来没手机登录过,结果把账号锁足了,电脑和笔记本都无法登录了,需要验证手机号。而且这个手机号还不是我的,我从来没有绑定过,心里暗暗吐槽,应该是京东在我的联系人列表中找了一个绑定了。联系客 ...
手机浏览器上微信支付
手机上支付宝支付宝能够在手机浏览器(非微信内置浏览器)上直接跳转到支付宝App,但发现微信无法实现、支付宝的链接是这样的
12345#类似这样https://mapi.alipay.com/gateway.do?_input_charset=utf-8&body=body¬ify_url=http://www.pangxieke.com/notify.php&out_trade_no=6532997929&partner=2088911823643201&payment_type=1&return_url=http://www.pangxieke.com/return.php
但是研究京东,发现是微信能够实现的。用二维码解码器分析其二维码,发现其链接类似于
123weixin://wxpay/bizpayurl?sign=6425491f60bebd7893675fbf4f57545ec257e807&appid=wxbb46510af80cea38&productid=1991516060115400000377 ...
瓦力walle代码发布系统
代码上线系统一直是我比较关注的问题。
以前公司试过直接用ftp上传。每次3台web服务器同时上传,费时而且容易出错
后来使用过Beyond Compare,每次上传前比较,也差不多费力
再后来公司使用svn,使用运维写的shell脚步上传,就方便很多。 但还是需要登录linux服务器操作,所以上传只能运维上传,不能分工到其他人,很多时候不方便。
一直想要个web界面的代码发布系统,刚好发现了瓦力系统,觉得不错,尝试本地安装测试下。参考文章瓦力官网http://www.walle-web.io注:安装前需要安装PHP,Mysql,Nginx
1. 代码检出12yum install git #如果没有安装gitgit clone https://github.com/meolu/walle-web.git
2. 安装composer,如果已安装跳过12curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer
3. 修改mysql连接1234567cd walle- ...
SSH免密码登录失败
今天尝试设置Linux系统下两台机信任,即SSH下www用户免密码登录。配置好后测试一直失败。切换到root用户设置却可以成功。找好久才发现原因为2台机的.ssh下文件要设置合理的权限,不能太高。
原理将A的ssh公钥告诉B,这A可以免密码登录B。测试中A为192.168.116.129,B为192.168.116.128
1、A生成秘钥1ssh-keygen -t rsa #(连续三次回车,即在本地生成了公钥和私钥,不设置密码)
此会在自己的家目录~/.ssh目录下生成2个文件
12id_rsa #私钥id_rsa.pub #公钥
例如如果想为www用户设置秘钥需要 su - www 切换为www用户再使用
2、A的id_rsa.pub告诉B在B的对应用户的家目录的~/.ssh/目录下建立authorized_keys文件,文件内容为id_rsa.pub可以手动vi,然后复制id_rsa.pub内容粘贴到authorized_keys文件或者
1scp -p /home/www/.ssh/id_rsa.pub root@192.168.116.128 ...
OpenCart入门及MVC分析
最近一直在用opencart做一个项目,研究各文档,了解了一下opencart的MVC结构。
一、OpenCart类opencart中的类均可通过$this->library_name在 Controller, Model 以及 Views层调用 。而这些类的文件位置在 /system/library/下. 比如,要获取当前购物车中的产品,你需要使用 Cart 类,文件路径为 /system/library/cart.php ,你可以用 $this->cart->etProducts()来调用。
常用的类
123456customer.php - 用户user.php - 管理员cart.php - 购物车config.php - 设置url.php - URL函数OpenCart路由
OpenCart的框架根据URL请求中的route=aaa/bbb/ccc参数部分来确定载入的页面,大多数的路由仅仅包含两个部分(aaa/bbb),少数会包含3个部分(aaa/bbb/ccc),第一部分aaa 通常为包含控制器 ...