"+~"
I}Xk%8bz[;
>/Q*@$$$$$$@oL|i
,-nq&$$$$$$@$$$$$$$Wwx_"
,l~1Uh%$$$$$$%kXf&$$$$$$$$$%kX}I
I?fUwaW%@$$$$$$Wwx_" lW$$$$$$$$$$$$@*)
<jO*B$$$$$$$$$@*L|i lW$$$$$$$$$$$$$$n
"1O&$$$$$$$@@$$$$wI lW$$$$$$$$$$$$$$x
[q@$$$$$&bCj[L$$$$Q lW$$$$$$$$$$$$$$x
"c% $$$%qj<" v$$$$0 lW$$$$$$$$$$$$$$x
"C @ m] j$$$$q lW$$$$$$$$$$$$$$/
u@$$ %x^ ]B$$$Ml lW$$$$$$$$$$$$$%_
<W$$$@x :a$$$@f lW$$$$$$$$$$$$$k,
n$$$$d" u$$$$aI lW$$$$$$$$$$$$$x
ip$$$$v la$$$$C lW$$$$$$$$$$$$k;
:?uwW@$$$$f 1%$$$@c lW$$$$$$$$$$$8}
>/LoB$$$$$$Bo{ nB$$$@U: lW$$$$$$$$$$Bj
?cd&$$$$$$$Wqv]; uB$$$$p? lW$$$$$$$$$%r
<Z%$$$$$$%aJ(i /M$$$$8U~ lW$$$$$$$$#(
>a$$$$@Mmx-, _w@$$$$&Lj&$$$$$$@Z~
Y$$$$h)l "th$$$$$@$$$$$$k|^ >j[>,
Z$$$$Y ;fdB$$$$$$Bpt: O$@&or
r$$$$8v: "[UaBBaY]" |B$$$%]
,Q@$$$$d? :??, _M$$$$z
"rM$$$$&c: <h$$$$q:
+m@$$$$d] +h$$$$a>
"jM$$$$8z; :l: )#$$$$a+
~Z@$$$$k/l ,l<-{/nXQwboWh/^ lY%$$$$d<
"jM$$$$$#mYuuzLmboM8B@$$$$$$$$$@m- ,ta$$$$BCI
<L8$$$$$$$$$$$$$$$$$$$$$$@@$$$$&Xl Ifb@$$$$*/
+cb&@$$$$$$$@B&MadZCzr|}1w@$$$$ot" ,?Xo$$$$$&U!
"<{rzUUzx/}_>I, "fo$$$$@w})YkB$$$$$&C+
!Y8$$$$@@$$$$$@ac<
?w@$$$$$$BoC1:
"to@%*mv[;
l}~; "+~"
I}Xk%8bz[;
>/Q*@$$$$$$@oL|i
,-nq&$$$$$$@$$$$$$$Wwx_"
,l~1Uh%$$$$$$%kXf&$$$$$$$$$%kX}I
I?fUwaW%@$$$$$$Wwx_" lW$$$$$$$$$$$$@*)
<jO*B$$$$$$$$$@*L|i lW$$$$$$$$$$$$$$n
"1O&$$$$$$$@@$$$$wI lW$$$$$$$$$$$$$$x
[q@$$$$$&bCj[L$$$$Q lW$$$$$$$$$$$$$$x
"c% $$$%qj<" v$$$$0 lW$$$$$$$$$$$$$$x
"C @ m] j$$$$q lW$$$$$$$$$$$$$$/
u@$$ %x^ ]B$$$Ml lW$$$$$$$$$$$$$%_
<W$$$@x :a$$$@f lW$$$$$$$$$$$$$k,
n$$$$d" u$$$$aI lW$$$$$$$$$$$$$x
ip$$$$v la$$$$C lW$$$$$$$$$$$$k;
:?uwW@$$$$f 1%$$$@c lW$$$$$$$$$$$8}
>/LoB$$$$$$Bo{ nB$$$@U: lW$$$$$$$$$$Bj
?cd&$$$$$$$Wqv]; uB$$$$p? lW$$$$$$$$$%r
<Z%$$$$$$%aJ(i /M$$$$8U~ lW$$$$$$$$#(
>a$$$$@Mmx-, _w@$$$$&Lj&$$$$$$@Z~
Y$$$$h)l "th$$$$$@$$$$$$k|^ >j[>,
Z$$$$Y ;fdB$$$$$$Bpt: O$@&or
r$$$$8v: "[UaBBaY]" |B$$$%]
,Q@$$$$d? :??, _M$$$$z
"rM$$$$&c: <h$$$$q:
+m@$$$$d] +h$$$$a>
"jM$$$$8z; :l: )#$$$$a+
~Z@$$$$k/l ,l<-{/nXQwboWh/^ lY%$$$$d<
"jM$$$$$#mYuuzLmboM8B@$$$$$$$$$@m- ,ta$$$$BCI
<L8$$$$$$$$$$$$$$$$$$$$$$@@$$$$&Xl Ifb@$$$$*/
+cb&@$$$$$$$@B&MadZCzr|}1w@$$$$ot" ,?Xo$$$$$&U!
"<{rzUUzx/}_>I, "fo$$$$@w})YkB$$$$$&C+
!Y8$$$$@@$$$$$@ac<
?w@$$$$$$BoC1:
"to@%*mv[;
l}~; "+~"
I}Xk%8bz[;
>/Q*@$$$$$$@oL|i
,-nq&$$$$$$@$$$$$$$Wwx_"
,l~1Uh%$$$$$$%kXf&$$$$$$$$$%kX}I
I?fUwaW%@$$$$$$Wwx_" lW$$$$$$$$$$$$@*)
<jO*B$$$$$$$$$@*L|i lW$$$$$$$$$$$$$$n
"1O&$$$$$$$@@$$$$wI lW$$$$$$$$$$$$$$x
[q@$$$$$&bCj[L$$$$Q lW$$$$$$$$$$$$$$x
"c% $$$%qj<" v$$$$0 lW$$$$$$$$$$$$$$x
"C @ m] j$$$$q lW$$$$$$$$$$$$$$/
u@$$ %x^ ]B$$$Ml lW$$$$$$$$$$$$$%_
<W$$$@x :a$$$@f lW$$$$$$$$$$$$$k,
n$$$$d" u$$$$aI lW$$$$$$$$$$$$$x
ip$$$$v la$$$$C lW$$$$$$$$$$$$k;
:?uwW@$$$$f 1%$$$@c lW$$$$$$$$$$$8}
>/LoB$$$$$$Bo{ nB$$$@U: lW$$$$$$$$$$Bj
?cd&$$$$$$$Wqv]; uB$$$$p? lW$$$$$$$$$%r
<Z%$$$$$$%aJ(i /M$$$$8U~ lW$$$$$$$$#(
>a$$$$@Mmx-, _w@$$$$&Lj&$$$$$$@Z~
Y$$$$h)l "th$$$$$@$$$$$$k|^ >j[>,
Z$$$$Y ;fdB$$$$$$Bpt: O$@&or
r$$$$8v: "[UaBBaY]" |B$$$%]
,Q@$$$$d? :??, _M$$$$z
"rM$$$$&c: <h$$$$q:
+m@$$$$d] +h$$$$a>
"jM$$$$8z; :l: )#$$$$a+
~Z@$$$$k/l ,l<-{/nXQwboWh/^ lY%$$$$d<
"jM$$$$$#mYuuzLmboM8B@$$$$$$$$$@m- ,ta$$$$BCI
<L8$$$$$$$$$$$$$$$$$$$$$$@@$$$$&Xl Ifb@$$$$*/
+cb&@$$$$$$$@B&MadZCzr|}1w@$$$$ot" ,?Xo$$$$$&U!
"<{rzUUzx/}_>I, "fo$$$$@w})YkB$$$$$&C+
!Y8$$$$@@$$$$$@ac<
?w@$$$$$$BoC1:
"to@%*mv[;
l}~;Integration guides
Guides
Practical, framework-specific walkthroughs for wiring Authdog into your stack. Start with authentication, then layer on access control.
app.py
from authdog.fastapi import Authdog authdog = Authdog( public_key=os.environ["PK_AUTHDOG"]) @app.get("/me")async def me(user): return {"id": user.sub}More frameworks are on the way. Looking for the SDKs? Browse the Framework-less SDK