我想解决使用HTTPBasicAuth烧瓶中的基本认证问题。烧瓶HTTPBasicAuth无标记内部标头
当我使用curl或web浏览器访问时,一切正常。 这是一个例子,其工作原理:
curl -u [access_token]:unused -i X GET http://127.0.0.1:5000/api/v1/token
或
http://[access_token]:[email protected]:5000/api/v1/token
但是当我在请求头中使用Authorization: Basic [token]
或Authorization: Basic [token]:unused
我从服务器获取500错误。
验证访问令牌或电子邮件地址和密码:
@auth.verify_password
def verify_password(email_or_token, password):
user = User.verify_auth_token(email_or_token)
if not user:
user = User.query.filter_by(email = email_or_token).first()
if not user or not user.verify_password(password):
return False
g.user = user
return True
用户模式:
class User(db.Model):
def generate_auth_token(self, expiration = 600):
s = Serializer(app.config['SECRET_KEY'], expires_in = expiration)
return s.dumps({ 'id': self.id })
@staticmethod
def verify_auth_token(token):
s = Serializer(app.config['SECRET_KEY'])
try:
data = s.loads(token)
except SignatureExpired:
return None # valid token, but expired
except BadSignature:
return None # invalid token
user = User.query.get(data['id'])
return user
我发现,当我使用的令牌或标题的电子邮件和密码Basic [token/email]:[password/unused]
,email_or_token
和password
属性是None
。
Error:
TypeError: argument of type 'NoneType' is not iterable
为什么而在请求头使用Authorization: Basic [token/email]:[password/unused]
发生错误?这是什么解决方案?