I've come across this block of code where the model script is handling token verification:
def encode_auth_token(self, user_id):
try:
payload = {
'exp': datetime.datetime.utcnow() + datetime.timedelta(
days=current_app.config.get('TOKEN_EXPIRATION_DAYS'), \
seconds=current_app.config.get('TOKEN_EXPIRATION_SECONDS')),
'iat': datetime.datetime.utcnow(),
'sub': user_id
}
return jwt.encode(payload, current_app.config.get('SECRET_KEY'), algorithm='HS256')
except Exception as e:
return e
@staticmethod
def decode_auth_token(token):
try:
return jwt.decode(token, current_app.config.get('SECRET_KEY'))
except jwt.ExpiredSignatureError:
return 'Signature expired. Please log in again.'
except jwt.InvalidTokenError:
return 'Invalid token. Please log in again.'
My question to this block of code is why decode_auth_token
method needs to be a static method whereas encode_auth_token
doesn't need to be ?