私は Pyramid セキュリティ モジュールに初めて足を踏み入れました。このログイン コードを使用して auth_tkt を設定しています。
@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 != 'testemail@gmail.com' 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)
問題なく動作しているように見えますが、不可解な詳細がいくつかあります。
まず、実際には 1 つではなく 2 つの Cookie が設定されます。2 つの Cookie は同一です (名前は「auth_tkt」)。ただし、1 つの違いがあります。 1 つではなく 2 つの Cookie が設定されていますか? ホスト値の違いの意味は何ですか?
質問 2、Web ツールは、どちらの Cookie も安全ではないと報告しています。Cookie が安全であることを確認するにはどうすればよいですか?
質問 3: 両方の Cookie の有効期限の値は「セッションの終了時」です。これはどういう意味ですか? また、有効期限の値を自分でカスタマイズするにはどうすればよいですか? ログイン Cookie の有効期限について推奨される方法は何ですか?
質問 4: "remember" の最初の引数が self.request.response ではなく self.request である理由がわかりません。request オブジェクトではなく、response オブジェクトでデータを記憶するべきではないでしょうか?