• 使用JWT实现安全认证——基于Angular2和Spring

    本文出自:【InTheWorld的博客】

    json_web_token

    全认证一直都是应用非常重要的一环,并且随着移动app和SPA的不断发展,基于token的认证正不断成为主流。JSON Web Tokens是一种简单好用的认证方法,一个JWT类型的token一般由三部分组成,分别是Header、Payload和Signature,当然有时候会加一个token前缀。

    以下图为例,分析一下JWT的结构:

    image

    首先,前面的“Bearer ”是token前缀,后面的内容中由两个”.”分割成为了三份。它们便分别对应Header,Payload和Signature。

    • Header记录token算法和类型的字段
    • Payload:记录所有数据的JSON对象,真正有效的数据都包含在这里
    • Signature:Signature是签名动作发生的地方,为了得到签名,我们使用Base64URL编码头部,接着使用Base64URL编码payoad,然后
    【查看更多】
  • MongoDB与Spring Boot

    本文出自:【InTheWorld的博客】

    MongoDB作为一种NoSQL数据库产品,其实已经非常著名了。去年,由于MongoDB安全认证的薄弱,上万家公司中招。虽然是一则负面新闻,但是也从侧面说明了MongoDB的流行程度。下图是DB-Engines统计的2017年5月全球数据库引擎使用排名。从图中可以看出,mongoDB位列总榜第五,非关系数据库第一,非常靠前的排名。

    db_engine_ranking

    我个人对mongoDB并不是非常熟悉,但是经过一段时间的了解,对mongoDB的特性还是有了一些简单的理解,这里记录一二。

    1. 首先,mongoDB作为一种非关系型数据库,它最大的特点就是Schema非常的弱。换而言之,mongoDB的升级以及应用的重构会变得比较简单。
    2. 其次,mongoDB使用了文档型的存储结构,数据接口则非常接近于JSON。JSON这种数据结构不仅简单而且也是非常流行的网络传输格式。
    3. 此外,mongoDB充分考虑了数据库
    【查看更多】
  • JavaScript对象及函数机制

    看Angular.js时候感觉JavaScript水平吃紧,所以需要充点电咯!我个人对JavaScript这语言的看法是,既简单有复杂。简单在语言特性少,复杂在灵活性太大。花了几天看大致看完了《JavaScript语言精粹》。这本书也大致定位为JavaScript的进阶读物,所以还是有一些收获的。当然书中也还是有一些不清楚甚至不正确的东西。

    一切都还是要从proto变量开始,这是JavaScript很多语言特性的基础。

    1. 对象是“名/值”对的集合,JavaScript中的对象都有一个proto变量。
    2. 对象字面量的proto连接到Object.prototype;函数对象的proto连接到Function.prototype。
    3. Function.prototype.proto连接到Object.prototype。

    4. Object.prototype本身是一个对象,但是它不存在proto
    【查看更多】
  • node.js和websocket实现echo

    本文出自:【InTheWorld的博客】

         最近在学习Node.js,其中一章讲了WebSocket相关的内容。我看的书是《了不起的node.js》。这本书中实现了一个echo例子,但是我照书上做的程序却出现了错误。书中使用了express和websocket.io实现的这个例子。然而例子的express版本还是古老的2.5.1,最新的已经是4..了,所以出了问题也不奇怪。
         书中的服务器代码片段大概是这样的:

    var express = require('express')
        , wsio = require("websocket.io")
    
    var app = express.createServer();
    
    var ws = wsio.attach(app);
    
    app.use(express.static('public'));
    【查看更多】