我正在第一次进入金字塔安全模块。我使用这个登录密码设置auth_tkt:Pyramid.security问题:双曲奇饼?饼干不安全?过期?
@view_config(route_name='LoginForm', request_method='POST', renderer='string')
class LoginForm(SimpleObject):
def __call__(self):
emailAddress = self.request.params.get('emailAddress')
password = self.request.params.get('password')
if emailAddress != '[email protected]' or password != 'testpassword':
errorDictionary = { 'message' : "Either the email address or password is wrong." }
self.request.response.status = 400
return json.dumps(errorDictionary, default=json_util.default)
testUserGUID = '123123123'
headers = remember(self.request, testUserGUID)
return HTTPOk(headers=headers)
看来工作正常,但也有一些令人费解的细节:
首先,2块饼干真正得到设定,而不是一个。这两个cookie是相同的(都使用名称“auth_tkt”),除了一个区别:一个主机值为“.www.mydomain.com”,而另一个cookie的主机值为“www.mydomain.com”为什么是2个饼干被设置而不是一个?差异主机价值的重要性是什么?
问题2,网络工具报告这两个cookie都不安全。我能做些什么来确保cookie是安全的?
问题3:这两个cookie的过期值均为“会话结束时”。这是什么意思,我怎样才能自定义到期价值?登录Cookie到期时间的建议做法是什么?
问题4:我不明白为什么“remember”的第一个参数是self.request而不是self.request.response。不应该在响应对象上记住数据,而不是请求对象?
推测你的意思是'serverUserGUID ='1123123123'';你用这个变量名称来调用'remember'。 –
谢谢你......我修正了错误。 – zakdances