Using Starlette ExtensionΒΆ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 #! /usr/bin/env python
 import uvicorn

 from starlette.applications import Starlette
 from starlette.middleware.sessions import SessionMiddleware
 from starlette.responses import PlainTextResponse

 from keycloak.extensions.starlette import AuthenticationMiddleware


 app = Starlette()
 app.debug = True
 app.add_middleware(AuthenticationMiddleware, callback_url="http://localhost:8000/kc/callback", redirect_uri="/howdy", logout_uri="/logout")
 app.add_middleware(SessionMiddleware, secret_key="secret0123456789")


 @app.route("/howdy")
 def howdy(request):
     return PlainTextResponse("Howdy!")


 @app.route("/logout")
 def logout(request):
     return PlainTextResponse("User logged out!")


 if __name__ == "__main__":
     uvicorn.run(app)