def token_generate(email=None, expires_in=TOKEN_EXPIRE_TIME): user = UserModel.query\ .filter(UserModel.email == email) \ .first() # print(user) created_at = datetime.datetime.now() expired_at = created_at + datetime.timedelta(seconds=expires_in) data = { #'id': user.id, 'user_id': user.id, 'username': user.username, 'email': user.email, 'created_at': created_at.isoformat(), 'expired_at': expired_at.isoformat(), 'scheme': TOKEN_SCHEME, 'confirmed': user.confirmed, 'is_active': user.is_active, } # change bytes to string # token = Serializer(APP_SECRET_KEY, expires_in=expires_in).dumps(data) token = Serializer(APP_SECRET_KEY, expires_in=expires_in).dumps(data).decode() data['token'] = hashlib.sha384(token.encode()).hexdigest() user_token = UserTokenModel(user_id=user.id, token=token, hashed=data['token'], expired_at=expired_at) db.session.add(user_token) db.session.commit() return data