我正在为GitHub编写一个Webhook,并在以下位置实现安全验证KOA.js:
function sign(tok, blob) {
var hmac;
hmac = crypto
.createHmac('sha1', tok)
.update(blob)
.digest('hex');
return 'sha1=' + hmac;
}
...
key = this.request.headers['x-hub-signature'];
blob = JSON.stringify(this.request.body);
if (!key || !blob) {
this.status = 400;
this.body = 'Bad Request';
}
lock = sign(settings.api_secret, blob);
if (lock !== key) {
console.log(symbols.warning, 'Unauthorized');
this.status = 403;
this.body = 'Unauthorized';
return;
}
...
Run Code Online (Sandbox Code Playgroud)
对于pull_requests和create事件,这工作正常,即使推送新分支也可以工作,但是对于推送提交事件,x-hub-signature来自有效负载的计算哈希值不匹配,因此它总是获得403未授权.
更新
我注意到,对于这种推送有效载荷,提交和head_commit被添加到有效载荷中.我已经尝试从正文中删除提交和head_commit但它没有用.
更新
有关更多信息,请查看这些示例有效负载.我还为测试回购和令牌信息添加了url:https://gist.github.com/marcoslhc/ec581f1a5ccdd80f8b33
是否有像Mozilla开发者网络一样的Chrome Javascript/DOM参考页面?哪个其他页面涵盖了Chrome标准的"标准"实施?
我使用Django 1.0编写了一个应用程序.它与django测试服务器一起工作正常.但是当我试图让它进入更有可能的生产环境时,Apache服务器无法运行应用程序.我使用的服务器是WAMP2.0.我多年来一直是PHP程序员,很久以前我一直在使用WAMPServer.我安装了mod_wsgi.so并且似乎工作正常(没有服务错误)但我无法配置httpd.conf来查看位于服务器根目录之外的python脚本.
现在,我很酷,覆盖文档根目录并从文档根目录中提供django应用程序,因此httpd.conf行应该如下所示:
WSGIScriptAlias / C:/Users/Marcos/Documents/mysite/apache/django.wsgi
但服务器的响应是403 Forbidden
最近我问了一个关于apache/mod_wsgi中识别python脚本目录的错误的问题.社区友好地回答了导致安装成功的问题.现在我有一个不同的错误,服务器守护进程(好吧,技术上是一个Windows服务,我说番茄你说...)没有找到任何模型,这里是完整的追溯:
环境:
Request Method: GET
Request URL: `http://localhost/polls/`
Django Version: 1.0.2 final
Python Version: 2.6.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'mysite.polls']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware')
Run Code Online (Sandbox Code Playgroud)
模板错误:在模板c:\ users\marcos\documents\djangotemplates\polls\poll _list.html中,第1行的错误在渲染时捕获到异常:没有这样的表:polls_poll
1 : {% if object_list %}
2 : <ul>
3 : {% for poll in object_list %}
4 : <li> <a href="{{poll.id}}/">{{ poll.question }} </a> </li>
5 : {% endfor %}
6 : </ul>
7 : {% else %}
8 : <p>No polls are available.</p>
9 … 我有一个模型,它有一个函数来计算两个字段之间的差异示例:
Class MyModel(models.Model):
fieldA = models.FloatField()
fieldB = models.FloatField()
def delta(self):
return self.fieldA - self.fieldB
Run Code Online (Sandbox Code Playgroud)
我想在 GenericView 中使用这个模型。我可以使用函数 delta 作为 extraContext 但我也喜欢在模板中包含所有 Delta 结果的总和,在这种情况下,我必须进行聚合,但再次因为 delta 既不是数据库字段也不是模型字段我不能使用它在一个聚合函数中。
怎样才能做到这一点?