Flaskのflask_httpauth(HTTPTokenAuth)
簡単なFlaskAPIを書いて、Tokenは検証します
flask-httpauthパッケージをダウンロードし、itsdangerousパッケージの後者は一時的なアイデンティティトークンを生成し、tokenを検証するために使用されます.
model.pyファイル:(modelファイルのuserクラスにtokenメソッドの生成を追加)
authToken.pyファイル:(tokenファイルの検証)
ここまでtokenのファイルを検証して書きました.
プラグインHTTPTokenAuthソースコードを見ると、デフォルトtokenのschemeは:Bearer.
修正するならverify_token(scheme="")
flask-httpauthパッケージをダウンロードし、itsdangerousパッケージの後者は一時的なアイデンティティトークンを生成し、tokenを検証するために使用されます.
pip install flask-httpauth
pip install itsdangerous
model.pyファイル:(modelファイルのuserクラスにtokenメソッドの生成を追加)
# token
@staticmethod
def generate_auth_token(user_id):
s = Serializer(Config.SECRET_KEY, expires_in=Config.EXPIRES_IN)
return s.dumps({'id': user_id}).decode('ascii')
authToken.pyファイル:(tokenファイルの検証)
from flask import g
from flask_httpauth import HTTPTokenAuth
from itsdangerous import SignatureExpired, BadSignature, TimedJSONWebSignatureSerializer as Serializer
from App.models import User
from App.settings import Config
# HTTPTokenAuth
authToken = HTTPTokenAuth()
#@authToken.verify_token HttpTokenAuth token
@authToken.verify_token
def verify_authToken(token):
g.user = None
s = Serializer(Config.SECRET_KEY)
try:
data = s.loads(token)
except SignatureExpired:
#
return False
except BadSignature:
# token
return False
# , token
return True
ここまでtokenのファイルを検証して書きました.
, , token .
token , `Authorization`
Bearer +token . verify_authToken(token) token.
headers['Authorization'] = 'Bearer ' + token
プラグインHTTPTokenAuthソースコードを見ると、デフォルトtokenのschemeは:Bearer.
def __init__(self, scheme='Bearer', realm=None, header=None):
super(HTTPTokenAuth, self).__init__(scheme, realm, header)
修正するならverify_token(scheme="")