File tree Expand file tree Collapse file tree 5 files changed +56
-1
lines changed Expand file tree Collapse file tree 5 files changed +56
-1
lines changed Original file line number Diff line number Diff line change @@ -351,6 +351,15 @@ PutExtra是上传时的可选信息,默认为null
351351@gist(gist/fop.js#makeImageViewUrl)
352352```
353353
354+ ### 实用函数
355+
356+ #### 测试是否来自七牛的callback
357+ 在上传的` putPolicy ` 中指定` callbackUrl ` 和` callbackBody ` ,在上传成功后七牛会有一个回调函数,这个函数用来检测回调是否来自七牛。
358+
359+ ``` {javascript}
360+ @gist(../test/rs.test.js#isQiniuCallback)
361+ ```
362+
354363## 贡献代码
355364
356365+ Fork
Original file line number Diff line number Diff line change @@ -174,7 +174,8 @@ function uptoken(bucketname) {
174174 //putPolicy.callbackBody = callbackBody;
175175 //putPolicy.returnUrl = returnUrl;
176176 //putPolicy.returnBody = returnBody;
177- //putPolicy.asyncOps = asyncOps;
177+ //putpolicy.persistentOps = persistentops;
178+ //putPolicy.persistentNotifyUrl = persistentNotifyUrl;
178179 //putPolicy.expires = expires;
179180
180181 return putPolicy.token();
@@ -584,6 +585,22 @@ url = policy.makeRequest(url);
584585console.log('在浏览器输入: ' + url);
585586```
586587
588+ ### 实用函数
589+
590+ #### 测试是否来自七牛的callback
591+ 在上传的` putPolicy ` 中指定` callbackUrl ` 和` callbackBody ` ,在上传成功后七牛会有一个回调函数,这个函数用来检测回调是否来自七牛。
592+
593+ ``` {javascript}
594+ // ------ auth应该是来自请求的header的'Authrization'字段,path是请求的路径,content是请求的内容
595+ var auth = 'QBox nnwjTeUgpQdfZp9cb4-iHK0EUlebKCNk4kXwoStq:kyFuG6yYh6FlX1fZO0alTgJK2Jw=';
596+ var path = '/callback';
597+ var content = 'key=43850.6579994258936495&hash=FllOJrhvzorEKnyMwE-o7pfciiha';
598+ // ------
599+
600+ var ok = qiniu.util.isQiniuCallback(path, content, auth);
601+ ok.should.be.ok;
602+ ```
603+
587604## 贡献代码
588605
589606+ Fork
Original file line number Diff line number Diff line change @@ -7,4 +7,6 @@ module.exports = {
77 rsf : require ( libpath + '/rsf.js' ) ,
88 fop : require ( libpath + '/fop.js' ) ,
99 conf : require ( libpath + '/conf.js' ) ,
10+ rpc : require ( libpath + '/rpc.js' ) ,
11+ util : require ( libpath + '/util.js' ) ,
1012} ;
Original file line number Diff line number Diff line change @@ -4,6 +4,8 @@ var path = require('path');
44var crypto = require ( 'crypto' ) ;
55var conf = require ( './conf' ) ;
66
7+ exports . isQiniuCallback = isQiniuCallback ;
8+
79// ------------------------------------------------------------------------------------------
810// func encode
911
@@ -41,3 +43,9 @@ exports.generateAccessToken = function(uri, body) {
4143 var safeDigest = exports . base64ToUrlSafe ( digest ) ;
4244 return 'QBox ' + conf . ACCESS_KEY + ':' + safeDigest ;
4345}
46+
47+ function isQiniuCallback ( path , body , auth ) {
48+
49+ var auth1 = exports . generateAccessToken ( path , body )
50+ return auth === auth1 ;
51+ }
Original file line number Diff line number Diff line change @@ -164,6 +164,25 @@ describe('test start step2:', function() {
164164 } ) ;
165165 } ) ;
166166
167+ describe ( 'rs.isQiniuCallBack' , function ( ) {
168+
169+ it ( 'test isQiniuCallback true' , function ( done ) {
170+ // @gist isQiniuCallback
171+ // ------ auth应该是来自请求的header的'Authrization'字段,path是请求的路径,content是请求的内容
172+ var auth = 'QBox nnwjTeUgpQdfZp9cb4-iHK0EUlebKCNk4kXwoStq:kyFuG6yYh6FlX1fZO0alTgJK2Jw=' ;
173+ var path = '/callback' ;
174+ var content = 'key=43850.6579994258936495&hash=FllOJrhvzorEKnyMwE-o7pfciiha' ;
175+ // ------
176+
177+ var ok = qiniu . util . isQiniuCallback ( path , content , auth ) ;
178+ ok . should . be . ok ;
179+ // @endgist
180+ done ( ) ;
181+ } ) ;
182+
183+
184+ } ) ;
185+
167186 // rs.GetPolicy#makeRequest()
168187
169188 } ) ;
You can’t perform that action at this time.
0 commit comments