def setUp(self): app = Sanic(__name__) app.config["SECRET_KEY"] = "my secret" Session(app) digest_auth_my_realm = HTTPDigestAuth(realm="My Realm", qop="auth", use_opaque=False) @digest_auth_my_realm.get_password def get_digest_password_3(username): if username == "susan": return "hello" elif username == "john": return "bye" else: return None @app.route("/") def index(request): return text("index") @app.route("/digest-with-realm") @digest_auth_my_realm.login_required def digest_auth_my_realm_route(request): return text(f"digest_auth_my_realm:" f"{digest_auth_my_realm.username(request)}") self.app = app self.client = app.test_client
def setUp(self): app = Sanic(__name__) app.config["SECRET_KEY"] = "my secret" app.config["CORS_AUTOMATIC_OPTIONS"] = True CORS(app) digest_auth = HTTPDigestAuth(use_session=False, qop="auth") @digest_auth.get_password def get_digest_password_2(username): if username == "susan": return "hello" elif username == "john": return "bye" else: return None @app.route("/") def index(request): return text("index") @app.route("/digest") @digest_auth.login_required def digest_auth_route(request): return text(f"digest_auth:{digest_auth.username(request)}") self.app = app self.digest_auth = digest_auth self.client = app.test_client
def setUp(self): app = Sanic(__name__) app.config["SECRET_KEY"] = "my secret" Session(app, interface=InMemorySessionInterface(cookie_name="test_session")) digest_auth_ha1_pw = HTTPDigestAuth(use_ha1_pw=True) @digest_auth_ha1_pw.get_password def get_digest_password(username): if username == "susan": return get_ha1(username, "hello", digest_auth_ha1_pw.realm) elif username == "john": return get_ha1(username, "bye", digest_auth_ha1_pw.realm) else: return None @app.route("/") def index(request): return "index" @app.route("/digest_ha1_pw") @digest_auth_ha1_pw.login_required def digest_auth_ha1_pw_route(request): return text( f"digest_auth_ha1_pw:{digest_auth_ha1_pw.username(request)}") self.app = app self.client = app.test_client
def setUp(self): app = Sanic(__name__) app.config["SECRET_KEY"] = "my secret" self.nonce = None self.opaque = None Session(app, interface=InMemorySessionInterface(cookie_name="test_session")) digest_auth_ha1_pw = HTTPDigestAuth(use_ha1_pw=True, qop=None) digest_auth_ha1_pw._generate_random = MagicMock(side_effect=[ "9549bf6d4fd6206e2945e8501481ddd5", "47c67cc7bedf6bc754f044f77f32b99e" ]) @digest_auth_ha1_pw.get_password def get_digest_password(username): if username == "susan": return get_ha1(username, "hello", digest_auth_ha1_pw.realm) elif username == "john": return get_ha1(username, "bye", digest_auth_ha1_pw.realm) else: return None @app.route("/") def index(request): return "index" @app.route("/digest_ha1_pw") @digest_auth_ha1_pw.login_required def digest_auth_ha1_pw_route(request): return text( f"digest_auth_ha1_pw:{digest_auth_ha1_pw.username(request)}") self.app = app self.client = app.test_client
from sanic import Sanic, response from sanic_httpauth import HTTPDigestAuth from sanic_session import Session app = Sanic(__name__) app.config["SECRET_KEY"] = "secret key here" auth = HTTPDigestAuth() Session(app) users = {"john": "hello", "susan": "bye"} @auth.get_password def get_pw(username): if username in users: return users.get(username) return None @app.route("/") @auth.login_required def index(request): return response.text(f"Hello, {auth.username(request)}") if __name__ == "__main__": app.run()