Pyramid doc の「 Making A “User Object” Available as a Request Attribute」の例を使用して、ユーザー データのアクセス可能なキャッシュを作成しようとしています。
次のコードを使用して、ユーザー オブジェクトを set_request_property に返しています。
from pyramid.security import unauthenticated_userid
def get_user(request):
# the below line is just an example, use your own method of
# accessing a database connection here (this could even be another
# request property such as request.db, implemented using this same
# pattern).
dbconn = request.registry.settings['dbconn']
userid = unauthenticated_userid(request)
if userid is not None:
# this should return None if the user doesn't exist
# in the database
return dbconn['users'].query({'id':userid})
データベースからユーザー情報を検索するために unauthenticated_userid(request) を使用している理由がわかりません...それは安全ではありませんか? つまり、ユーザーがログインしていない可能性があるのに、なぜその ID を使用してデータベースから個人情報を取得しているのですか?
すべきではない
userid = authenticated_userid(request)
ユーザーがログインしていることを確認する代わりに使用されますか? unauthenticated_userid(request) を使用する利点は何ですか? ここで何が起こっているのかを理解するのを手伝ってください。