jwt-express.js
function(token) {
        this.token = token || '';
        
        try {
            this.payload = utils.verify(this.token, this.secret, this.options.verifyOptions);
            this.valid = true;
        } catch (err) {
            this.payload = utils.decode(this.token) || {};
            if (err.name == 'TokenExpiredError') {
                this.expired = true;
            }
        }
        
        if (this.valid && !this.options.verify(this)) {
            this.valid = false;
        }
        
        if (this.payload.stales && Date.now() <= this.payload.stales) {
            this.stale = false;
        }
        
        return this;
    }
function(token) {
        this.token = token || '';
        
        try {
            this.payload = utils.verify(this.token, this.secret, this.options.verifyOptions);
            this.valid = true;
        } catch (err) {
            this.payload = utils.decode(this.token) || {};
            if (err.name == 'TokenExpiredError') {
                this.expired = true;
            }
        }
        
        if (this.valid && !this.options.verify(this)) {
            this.valid = false;
        }
        
        if (this.payload.stales && Date.now() <= this.payload.stales) {
            this.stale = false;
        }
        
        return this;
    }
verify - verifies the JWT's token
@param string token The token to verify
@return this