HTTPBasicAuthを使用してフラスコの基本認証の問題を解決しようとしています。Flask HTTPBasicAuthヘッダ内にトークンがありません
私がカールまたはウェブブラウザを使用してアクセスしているときは、すべて正常に動作します。 この作品例です:私はリクエストのヘッダにAuthorization: Basic [token]
またはAuthorization: Basic [token]:unused
を使用していたときに
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
しかし、私は、サーバーから500エラーを取得します。私はBasic [token/email]:[password/unused]
、email_or_token
とpassword
としてトークンまたはヘッダー内のメールアドレスとパスワードを使用していたときにことがわかっ
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
:
@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
Userモデル:トークンまたはメールアドレスとパスワードのアクセスを確認
プロパティはNone
です。リクエストのヘッダにAuthorization: Basic [token/email]:[password/unused]
を使用しながら
Error:
TypeError: argument of type 'NoneType' is not iterable
なぜエラーが発生しますか?このための解決策は何ですか?