mirror of
https://github.com/miguelgrinberg/microblog.git
synced 2025-12-08 18:02:07 +00:00
31 lines
735 B
Python
31 lines
735 B
Python
import sqlalchemy as sa
|
|
from flask_httpauth import HTTPBasicAuth, HTTPTokenAuth
|
|
from app import db
|
|
from app.models import User
|
|
from app.api.errors import error_response
|
|
|
|
basic_auth = HTTPBasicAuth()
|
|
token_auth = HTTPTokenAuth()
|
|
|
|
|
|
@basic_auth.verify_password
|
|
def verify_password(username, password):
|
|
user = db.session.scalar(sa.select(User).where(User.username == username))
|
|
if user and user.check_password(password):
|
|
return user
|
|
|
|
|
|
@basic_auth.error_handler
|
|
def basic_auth_error(status):
|
|
return error_response(status)
|
|
|
|
|
|
@token_auth.verify_token
|
|
def verify_token(token):
|
|
return User.check_token(token) if token else None
|
|
|
|
|
|
@token_auth.error_handler
|
|
def token_auth_error(status):
|
|
return error_response(status)
|