检查一个密钥是否是当前应用ID的有效密钥
问题描述:
有没有一种方法或函数来检查密钥是否是当前应用ID的有效密钥?检查一个密钥是否是当前应用ID的有效密钥
例如
key = fetch_urlsafe_key_from_external_source()
key = ndb.Key(urlsafe=key)
if not is_valid_key(key):
return
# do something with the key
编辑:目前我正在做
def is_valid_key(key):
try:
key.get()
except datastore_errors.BadRequestError:
return False
return True
但希望有人建议一些不要求打数据存储
答
您可以检查正确的应用程序ID列入重点:
import os
def is_valid_key(key):
"""Valid key should include an ID and current application ID.
"""
if key.app() == os.getenv('APPLICATION_ID') and key.id():
return True
return False
答
这是你在找什么?
def is_valid_key(key):
try:
key.id()
except TypeError:
return False
return True
编辑:
我知道认识到OP想应用有效不仅仅是密钥验证。当前选择的“正确”答案在大多数情况下都适用,但如果密钥不完整/更改(即缺少一些字符或在字符串末尾有多余字符),仍然会引发异常,验证的更好方法是:
def is_valid_key(key):
try:
key.id()
except TypeError:
return False
return key.app() == os.getenv('APPLICATION_ID')