大佬教程收集整理的这篇文章主要介绍了javascript – 在Node.js(Express)Facebook画布应用程序中获取signed_request,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
var crypto = require('crypto'); SignedRequest = (function() { function SignedRequest(secret,request) { this.secret = secret; this.request = request; this.verify = this.verify.bind(this); var parts = this.request.split('.'); this.encodedSignature = parts[0]; this.encoded = parts[1]; this.signature = this.base64decode(this.encodedSignature); this.decoded = this.base64decode(this.encoded); this.data = JSON.parse(this.decoded); } SignedRequest.prototype.verify = function() { if (this.data.algorithm !== 'HMAC-SHA256') { return false; } var hmac = crypto.createHmac('SHA256',this.secret); hmac.update(this.encoded); var result = hmac.digest('base64').replace(/\//g,'_').replace(/\+/g,'-').replace(/\=/g,''); return result === this.encodedSignature; }; SignedRequest.prototype.base64encode = function(data) { return new Buffer(data,'utf8').toString('base64').replace(/\//g,''); }; SignedRequest.prototype.base64decode = function(data) { while (data.length % 4 !== 0) { data += '='; } data = data.replace(/-/g,'+').replace(/_/g,'/'); return new Buffer(data,'base64').toString('utf-8'); }; return SignedRequest; })(); module.exports = SignedRequest;
您可以这样使用:
var verifier = new SignedRequest(clientSecret,signedRequest); verifier.verify() // whether or not the signed request verifies verifier.data // the data from the signed request
以上是大佬教程为你收集整理的javascript – 在Node.js(Express)Facebook画布应用程序中获取signed_request全部内容,希望文章能够帮你解决javascript – 在Node.js(Express)Facebook画布应用程序中获取signed_request所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。