🚀 Authdog hosted identity pages follow best practices to maintain high lighthouse scores100
AuthdogAuthdog
API
Language
Loading theme
AI
Agentic AuthenticationAI ToolsMCP SecurityTrust Store
Console
No-code identity flowsBuilt-in audit logBranding & themingNotifications & webhooks
Cyber threats
Threat mitigationSIEMBot detectionZero Trust
Developers
Framework-less SDKWeb SDKCLIGuidesPasskeys Directory
Solutions
AuthenticationUser ManagementScalable Authorization
Enterprise
Enterprise SSOSCIM provisioningHRIS provisioningIntegrations
Frameworks
Next.jsReact logoRemixTanStack Start logoVue logoSvelteKit logoAstro logoAngularReact Native logoGatsbyRedwoodJSExpressFastifyGo logoPython logoFastAPI logoDjangoFlaskRust
Tools
JWT PlaygroundSAML DecoderKnow Your VisitorSSL Check
Company

Mission, principles, and where to find us

Changelog

Product updates, releases, and improvements

Blog

Identity architecture, security, and product deep dives

Status

Real-time health of Authdog services

Documentation

Guides, concepts, and API references

Guides

Step-by-step integration and migration guides

Developer Tools

JWT, SAML, TLS, OAuth, and identity utilities

Glossary

Identity and authentication terminology

!1<0=^X\}0~O\~O^1*X}@0%*_}?!\*~${*/1~1?@x1^/&R{#_-{-R0+Z?[{\\>R!>>x[+}=#\!/x_&\<$*>]-+?=^1O_#$@@1_<?]1>\
\$1^]O@###!1x+Z}*[~&ZZ<X1[@_1\}1=+1-X|[]RZX>?R$>*~1?=?>1{}xx#{||_&>~0+x^^!$}[O~]>#+%@xx_^1\]1x%O=O^]1<=0
!>=}|01111+1R/$%|^1##?->*01_0@!X<+/$$R^***-#?|[~X@X+*_+X0X/000?]R%#]$Rx%R1{1%\x0[Z\!~R#X|}@@_%^x!^1|!}=0
]*{0x1&-Z<{$X_>/?^\!_xR/\-~>R+@O?_+&1_%==%><[*{=+x{#x1Z&-x#~=<0|ZR}O@O<{#O1+0R+?!^@x}11?^>0*1$<1~x-?!}\1
/O0<-]~*!?1$X!*=[^}0O*|*R^~*00[+~!OX$]1[R^1{_0%&][_@<{{1!&O|*Z!1Z0]Z/ZX_1@$[//0\Z![#_RO{R+0#}-/<&?-1Ox_$
<_-R//%1%~Z#1#}%0^<0|x@x@O}\|~X11%X[@Z|]<Z^>[0@>^ZO=$*+^{x%<[/!\&0&~|?X0!\+#[1R~O[[x[|>?Z_+?$/-^?/%0X?01
~O<!O>]_%*$Z&0?O}0%|10//x>0RO[}x1^_]|~_0]]@[~O/+|?\R@1|^?[=XX%O}-O^$0[]{00}[XO?\>&<!-Z111{-~1|1}-&Z#@[<O
--00R+$<O1_1-#11&O$~/%\>X@R\}]![#*#$]1-?+#%-{_!!1+RRR<R1!$%%*{]@<\|+\~X0#-Z][<_!?<X$?1{>~1|~1*<-x?>1X!1\
}~/[!>1Z0>x[?-/X#~$O~[x|%O!1ZO%=?{@>0<$%!~}ZO\*$*RZ0RR??0*!Z]X0&*0R>10=X}/<{>/<0+-%%_X1*_-0O0#%+|<0x[x]?
1{*#-1}#+}@{OO~+}_[$-!%$?x*1-1?=@+|x$=^O_$R^00R|?&>{O~>}?|0>@Z}!xOx<~~-!<OOR?*}-%0x?^1Z*x&/0$x]&!xR+RZ!~
$@~O]]@^$<}OXO]R@$/^$&{=x&~^_\%0%R{X|?~*%>^[0~x<=@@1>1{\0Ox_]0}XO[#\0&1|x/&$~!?X#^<>|%Z0??}xOR#?-<[<!<-/
R!/$O~#X~1#=OxR0?R@1/X!<[|/1{X?0|$&]*00{?|0~R@1[@_@]0]$!_#_~11$~%/_^1!$+[?^~/={-Z?=|1|*~-\>1Xx\R+>1$_|O+
?]0~/{]<+\_R<1_x]>\O#Z_<%>0RR%>+[}|~0^=[?RZ1[#0RRZ_/%&{}|[@0Zx>\~1~1{1\%|>>*+~+R1{Z[_]<|!R&#0#@ZR&x}#_-!
]X|?+?[-*-\>//X~/*&_!%Ox%-=_+!O%!@+]!!]|!X|=<1O01!^+-xZ01@*++/+%$OR[]]#?R~|Z\|><?//[<_O}?@>0=+=#=#Z!XO$?
?#0$x?0_*]?1<-<%+\=!x#$_x10x$>x!{+Zx0#1}[>#{!\1O*]/O0-1#_<//-10RR]#[*-X$_O@Z[=0{O\[1*1+x?0X]\=<!>1\OO[!+
x-]\#@x>!#_xX{#|@X|$Xx#++O+00+O+@x^^$/<+}=\~Z}$?/x<@x_{>\-<11O]Z}>]-%+$^@+xO0_&]@O_+#>?x@~^xZ0#]Z~0~~[^_
~=0x}#%?}1}[=1|[-Z0?x$]R\+[]^R+0$*#+&=X-x=%*[-\$<=+0?$\{O\/[>+~1R%+#-<{@%@1O&{?1O1]@X|{^$!|]<*[O&%0\}0_0
&xO1~~OO\11?0?|~#0!@}O@-1$!?1*>\~Z_><~0=[XZZ[+]/Z@^&1+1}0x[~*x=R!0X$=Z0xx-^01R1\!{#x%\!&0@^->!{@&_@}!0x!
@^}{0x_>^1&+#?^@-*>/|@0~{/Z]{00[Z01%+#&0>!}Z*>|1-{?*RO{-Ox+Z>[+1^[>?&<[X%>#~<-{0O_>RO#_1+}-}^Z#\<}1}\01~
Z^Z$/-Z{Z>?_0#&~x[@X#1|Ox#R0&@&~{x~>>R[O1?<\xO{]$*=^1^>Z|??|X#x$0x_O?#{X0}-O@${/x]}_{/Z}X{#]_[&~-0~*#X*[
[-]!R<-*]0_{%[/X]_-\1#]~X0?ZO/01!-{x/$=!^0-{X?]1+[>[$x?|${x&[~}_00~!#%1^X{?0#X0>/!/]^%#x0-~~R@=&>X#0##!_
&RR-^11*1$=1>+X_Z@/@X*/]&_X$0{1}^x@R<\%*}-+000_x/0?OZ_^Z*{@_!0{|[+/0/>*|x\\-O|0>=-}&!x<}$=~X-/}?<=@@|~}&
{0++<>#[/*-O^<!}|!R[]0!|^_0O$^^1=/{0\@$~0?0x}X|!<~?]^}{$]11[X/\#O^0+X}=$0<<Z>?1+/=+0X?&Z#/1_[>/1O01++\X_
^}@|]+0\%^!Z1~%\<@&x{x]=]O$=10R<01_*!R^^%|R\{\Z@!>#!1[<O/@^>R_0|1{X$&[<!~~[x$/&\%<$#/#X/}#<#1|##?^-}~/<|
*#1>^_<\]-!~-=Z0|1%}x]O&X>+\$__0^/R~0}O%#/}!!^^$**?R]~*_+^$\]^Z]{\R--*%=$#^{@|_{|$_&+1|#<@1}_@~$]^O-!*[>
{1#][[>[}$%/_OZ}00{X-[~##\@}}>!^1^x00~@1+*<%x[}\1||=%!0&X/{?Z~%1~~!X*1]-+*%xR}[x@}#+{/ZZ]_|@%]/^O!0~x]?Z
=]x[1>$+-@[<~1^1-|x+#O+~0&%O1|{<?1!R?-O^1~0#}RX1|!0#RX1-0[^%=1?[x]%X#=1]xx[^$&_}~*@=%<~!1{#\%O0%\]1]@Z[_
11=@x$X?Z?><^=<x?~|!]R[}x^\0_~&~}Z[/=R[|0&/0]&*{%O-^|&Z$R0/\><1[x}X10R$/@<&/-&@*ZR%>=X*_!1}XO|/^_+#}~R/\
%#Z##[X\{1??$X0X[&@x~!+$0{%0+10X-!?00#{&+~\]11x_!!_/?@10\!~1//|$xO\Z@0R#$_0-+@?=$=|@<1Z-~*<{~1~!ZZ{=R0!0
~^x1RR=_&<~&O*+>[}\?{#<*+~0x}*0#|+$!0x<!}>1=|/+\_<R}+?%~@!Rx{Ox@xR&+1/0{R$}/XZ?/^+]&?>#{{}10*^/^0|+*@$#1
{{>\^<^|#++@O^0[{|1&R<}@&@[<[#\*x@$}{_[=<^1>0{0^+0<Ox\&!_=#X*]<[{$!\^|?Z0=1>=!-}x-?*\/>R0x[]-O]?]*\]O_|#
=~%R1*!*-|/1$O_^~!0\X|ZX_}RR1&[X_#>Z1X-OX1/@xZ+>%]^0#!@}ZO]@^>^*0X0]?-$_#R$]<R$$}\Z}}}*+<1&_=??[{_~\%^&[
@$/~$%=\0#?<}0>/$>$%[*}0}@~O|!#&0&[x=%<=#%$>R-?+x$]^R*&-=-|#^%0+xO]Z_R#{!!R=&@/[|x@}110*xR%%>[\?O<{*O__$
11]/*|%0^^@&*X/0}@1&?#^<{{-$=~0[R1!~>O0$^-O{O-xZ[!$^x<%^_O%X/%R{/~0=0Z<1~|X&^%/~Z_[!1?{11]R-!<x0R~-/*]|_
x^%x[[$1O@01\>00@_01000~+{R}x%>X|O[Z>]}{R@|1RR*1*!~=1Z0+_0=_!Z!|=]x>~#x>0=Z&!<X1$~%%{{=01!1{R_}0@^^=1#==
X*!ZO#%X0Z>}O=_R[Z0%]{{=11]1X<!}R1/<Z+=1@X%_x?0Z~_{~^ZO+@??O=?&=1\}0?|%1$^%>!Z=/%+>X-0%?|\\|00]x%[+*Z_~|
]R#|@\#~#>1*}XR-%0R@%?*@R<[}0</}^|*[x>&||+}^|]_-O#+_%]*0<$>=~}~\#!#~^]0{/{>!Z!@X*{0^|x=|=@O#X0R{/[?*-x$}
R<-1>\&0]}~0>=&=1_>~ZZ^~^@]>1*{$!*^0X]>=[^^__>-|_&1x/^$%}!<Z{O+1O~O}|~<*^&&xX><|</x}*1*\|<%0>#/|{Z}-[_^-
[\1x0]|?1/+*1/_0X>|_}/!X?_1{ZxR=[/<?~^Z~~%^Xx0=1^O1>_Z/O*%~>x&~*^#Z@!&0//xx/+-#[-[_Z-?@\1*#}0@%!#+0\{{x[
R0[/|OZX<{|*<|O-&~1|!={0@}|@%#R@/<__<O1|x1Z<>*%/[{>-\!-1$x|1~1}@1]OZx*[#x]$@%1#0_%0R<#-Z|0}]#1{R*1~<#!%&
X$~0/~}$&#_O$R*@>-1]#0/1O_^$&?$}X0!&\!Z~1=?-\&!_R+@ORX&0O=<1[}~1>0XO?0]}>}Z+[1*0{^/]0|?&^=X0\*!X/0[@|>R@
//+&>|@}R1~-1*{%_!|^Rx~]-O0/|]+1#Z+X[#}0Z\&1<\%_+|]0-O0R#X<~R<=?{X~O!X[~|X@R<O/&>1@^_$|^/_?/{X?[>_[*$&%>
##0=[#<~=@$XX#}1^[0*/-&1?-#_1O+1=[#0&x1O=%<<#=[|0[>=0}=*0/=$$<+*__/%x_^1X#}%|%&Z{>*\%R$*+X]\+>1X}^0<<\X{
*>\|?$-\11[|11$*#~X1%01=}&%^Z}^0@*_=?R?/*&\0x#|&0##Z[0R%^X&=-XX0%0/X!?[_1Z[_0!]\]0{>|0OR#^@?1$@0^~/>%=0~
!1<0=^X\}0~O\~O^1*X}@0%*_}?!\*~${*/1~1?@x1^/&R{#_-{-R0+Z?[{\\>R!>>x[+}=#\!/x_&\<$*>]-+?=^1O_#$@@1_<?]1>\
\$1^]O@###!1x+Z}*[~&ZZ<X1[@_1\}1=+1-X|[]RZX>?R$>*~1?=?>1{}xx#{||_&>~0+x^^!$}[O~]>#+%@xx_^1\]1x%O=O^]1<=0
!>=}|01111+1R/$%|^1##?->*01_0@!X<+/$$R^***-#?|[~X@X+*_+X0X/000?]R%#]$Rx%R1{1%\x0[Z\!~R#X|}@@_%^x!^1|!}=0
]*{0x1&-Z<{$X_>/?^\!_xR/\-~>R+@O?_+&1_%==%><[*{=+x{#x1Z&-x#~=<0|ZR}O@O<{#O1+0R+?!^@x}11?^>0*1$<1~x-?!}\1
/O0<-]~*!?1$X!*=[^}0O*|*R^~*00[+~!OX$]1[R^1{_0%&][_@<{{1!&O|*Z!1Z0]Z/ZX_1@$[//0\Z![#_RO{R+0#}-/<&?-1Ox_$
<_-R//%1%~Z#1#}%0^<0|x@x@O}\|~X11%X[@Z|]<Z^>[0@>^ZO=$*+^{x%<[/!\&0&~|?X0!\+#[1R~O[[x[|>?Z_+?$/-^?/%0X?01
~O<!O>]_%*$Z&0?O}0%|10//x>0RO[}x1^_]|~_0]]@[~O/+|?\R@1|^?[=XX%O}-O^$0[]{00}[XO?\>&<!-Z111{-~1|1}-&Z#@[<O
--00R+$<O1_1-#11&O$~/%\>X@R\}]![#*#$]1-?+#%-{_!!1+RRR<R1!$%%*{]@<\|+\~X0#-Z][<_!?<X$?1{>~1|~1*<-x?>1X!1\
}~/[!>1Z0>x[?-/X#~$O~[x|%O!1ZO%=?{@>0<$%!~}ZO\*$*RZ0RR??0*!Z]X0&*0R>10=X}/<{>/<0+-%%_X1*_-0O0#%+|<0x[x]?
1{*#-1}#+}@{OO~+}_[$-!%$?x*1-1?=@+|x$=^O_$R^00R|?&>{O~>}?|0>@Z}!xOx<~~-!<OOR?*}-%0x?^1Z*x&/0$x]&!xR+RZ!~
$@~O]]@^$<}OXO]R@$/^$&{=x&~^_\%0%R{X|?~*%>^[0~x<=@@1>1{\0Ox_]0}XO[#\0&1|x/&$~!?X#^<>|%Z0??}xOR#?-<[<!<-/
R!/$O~#X~1#=OxR0?R@1/X!<[|/1{X?0|$&]*00{?|0~R@1[@_@]0]$!_#_~11$~%/_^1!$+[?^~/={-Z?=|1|*~-\>1Xx\R+>1$_|O+
?]0~/{]<+\_R<1_x]>\O#Z_<%>0RR%>+[}|~0^=[?RZ1[#0RRZ_/%&{}|[@0Zx>\~1~1{1\%|>>*+~+R1{Z[_]<|!R&#0#@ZR&x}#_-!
]X|?+?[-*-\>//X~/*&_!%Ox%-=_+!O%!@+]!!]|!X|=<1O01!^+-xZ01@*++/+%$OR[]]#?R~|Z\|><?//[<_O}?@>0=+=#=#Z!XO$?
?#0$x?0_*]?1<-<%+\=!x#$_x10x$>x!{+Zx0#1}[>#{!\1O*]/O0-1#_<//-10RR]#[*-X$_O@Z[=0{O\[1*1+x?0X]\=<!>1\OO[!+
x-]\#@x>!#_xX{#|@X|$Xx#++O+00+O+@x^^$/<+}=\~Z}$?/x<@x_{>\-<11O]Z}>]-%+$^@+xO0_&]@O_+#>?x@~^xZ0#]Z~0~~[^_
~=0x}#%?}1}[=1|[-Z0?x$]R\+[]^R+0$*#+&=X-x=%*[-\$<=+0?$\{O\/[>+~1R%+#-<{@%@1O&{?1O1]@X|{^$!|]<*[O&%0\}0_0
&xO1~~OO\11?0?|~#0!@}O@-1$!?1*>\~Z_><~0=[XZZ[+]/Z@^&1+1}0x[~*x=R!0X$=Z0xx-^01R1\!{#x%\!&0@^->!{@&_@}!0x!
@^}{0x_>^1&+#?^@-*>/|@0~{/Z]{00[Z01%+#&0>!}Z*>|1-{?*RO{-Ox+Z>[+1^[>?&<[X%>#~<-{0O_>RO#_1+}-}^Z#\<}1}\01~
Z^Z$/-Z{Z>?_0#&~x[@X#1|Ox#R0&@&~{x~>>R[O1?<\xO{]$*=^1^>Z|??|X#x$0x_O?#{X0}-O@${/x]}_{/Z}X{#]_[&~-0~*#X*[
[-]!R<-*]0_{%[/X]_-\1#]~X0?ZO/01!-{x/$=!^0-{X?]1+[>[$x?|${x&[~}_00~!#%1^X{?0#X0>/!/]^%#x0-~~R@=&>X#0##!_
&RR-^11*1$=1>+X_Z@/@X*/]&_X$0{1}^x@R<\%*}-+000_x/0?OZ_^Z*{@_!0{|[+/0/>*|x\\-O|0>=-}&!x<}$=~X-/}?<=@@|~}&
{0++<>#[/*-O^<!}|!R[]0!|^_0O$^^1=/{0\@$~0?0x}X|!<~?]^}{$]11[X/\#O^0+X}=$0<<Z>?1+/=+0X?&Z#/1_[>/1O01++\X_
^}@|]+0\%^!Z1~%\<@&x{x]=]O$=10R<01_*!R^^%|R\{\Z@!>#!1[<O/@^>R_0|1{X$&[<!~~[x$/&\%<$#/#X/}#<#1|##?^-}~/<|
*#1>^_<\]-!~-=Z0|1%}x]O&X>+\$__0^/R~0}O%#/}!!^^$**?R]~*_+^$\]^Z]{\R--*%=$#^{@|_{|$_&+1|#<@1}_@~$]^O-!*[>
{1#][[>[}$%/_OZ}00{X-[~##\@}}>!^1^x00~@1+*<%x[}\1||=%!0&X/{?Z~%1~~!X*1]-+*%xR}[x@}#+{/ZZ]_|@%]/^O!0~x]?Z
=]x[1>$+-@[<~1^1-|x+#O+~0&%O1|{<?1!R?-O^1~0#}RX1|!0#RX1-0[^%=1?[x]%X#=1]xx[^$&_}~*@=%<~!1{#\%O0%\]1]@Z[_
11=@x$X?Z?><^=<x?~|!]R[}x^\0_~&~}Z[/=R[|0&/0]&*{%O-^|&Z$R0/\><1[x}X10R$/@<&/-&@*ZR%>=X*_!1}XO|/^_+#}~R/\
%#Z##[X\{1??$X0X[&@x~!+$0{%0+10X-!?00#{&+~\]11x_!!_/?@10\!~1//|$xO\Z@0R#$_0-+@?=$=|@<1Z-~*<{~1~!ZZ{=R0!0
~^x1RR=_&<~&O*+>[}\?{#<*+~0x}*0#|+$!0x<!}>1=|/+\_<R}+?%~@!Rx{Ox@xR&+1/0{R$}/XZ?/^+]&?>#{{}10*^/^0|+*@$#1
{{>\^<^|#++@O^0[{|1&R<}@&@[<[#\*x@$}{_[=<^1>0{0^+0<Ox\&!_=#X*]<[{$!\^|?Z0=1>=!-}x-?*\/>R0x[]-O]?]*\]O_|#
=~%R1*!*-|/1$O_^~!0\X|ZX_}RR1&[X_#>Z1X-OX1/@xZ+>%]^0#!@}ZO]@^>^*0X0]?-$_#R$]<R$$}\Z}}}*+<1&_=??[{_~\%^&[
@$/~$%=\0#?<}0>/$>$%[*}0}@~O|!#&0&[x=%<=#%$>R-?+x$]^R*&-=-|#^%0+xO]Z_R#{!!R=&@/[|x@}110*xR%%>[\?O<{*O__$
11]/*|%0^^@&*X/0}@1&?#^<{{-$=~0[R1!~>O0$^-O{O-xZ[!$^x<%^_O%X/%R{/~0=0Z<1~|X&^%/~Z_[!1?{11]R-!<x0R~-/*]|_
x^%x[[$1O@01\>00@_01000~+{R}x%>X|O[Z>]}{R@|1RR*1*!~=1Z0+_0=_!Z!|=]x>~#x>0=Z&!<X1$~%%{{=01!1{R_}0@^^=1#==
X*!ZO#%X0Z>}O=_R[Z0%]{{=11]1X<!}R1/<Z+=1@X%_x?0Z~_{~^ZO+@??O=?&=1\}0?|%1$^%>!Z=/%+>X-0%?|\\|00]x%[+*Z_~|
]R#|@\#~#>1*}XR-%0R@%?*@R<[}0</}^|*[x>&||+}^|]_-O#+_%]*0<$>=~}~\#!#~^]0{/{>!Z!@X*{0^|x=|=@O#X0R{/[?*-x$}
R<-1>\&0]}~0>=&=1_>~ZZ^~^@]>1*{$!*^0X]>=[^^__>-|_&1x/^$%}!<Z{O+1O~O}|~<*^&&xX><|</x}*1*\|<%0>#/|{Z}-[_^-
[\1x0]|?1/+*1/_0X>|_}/!X?_1{ZxR=[/<?~^Z~~%^Xx0=1^O1>_Z/O*%~>x&~*^#Z@!&0//xx/+-#[-[_Z-?@\1*#}0@%!#+0\{{x[
R0[/|OZX<{|*<|O-&~1|!={0@}|@%#R@/<__<O1|x1Z<>*%/[{>-\!-1$x|1~1}@1]OZx*[#x]$@%1#0_%0R<#-Z|0}]#1{R*1~<#!%&
X$~0/~}$&#_O$R*@>-1]#0/1O_^$&?$}X0!&\!Z~1=?-\&!_R+@ORX&0O=<1[}~1>0XO?0]}>}Z+[1*0{^/]0|?&^=X0\*!X/0[@|>R@
//+&>|@}R1~-1*{%_!|^Rx~]-O0/|]+1#Z+X[#}0Z\&1<\%_+|]0-O0R#X<~R<=?{X~O!X[~|X@R<O/&>1@^_$|^/_?/{X?[>_[*$&%>
##0=[#<~=@$XX#}1^[0*/-&1?-#_1O+1=[#0&x1O=%<<#=[|0[>=0}=*0/=$$<+*__/%x_^1X#}%|%&Z{>*\%R$*+X]\+>1X}^0<<\X{
*>\|?$-\11[|11$*#~X1%01=}&%^Z}^0@*_=?R?/*&\0x#|&0##Z[0R%^X&=-XX0%0/X!?[_1Z[_0!]\]0{>|0OR#^@?1$@0^~/>%=0~
!1<0=^X\}0~O\~O^1*X}@0%*_}?!\*~${*/1~1?@x1^/&R{#_-{-R0+Z?[{\\>R!>>x[+}=#\!/x_&\<$*>]-+?=^1O_#$@@1_<?]1>\
\$1^]O@###!1x+Z}*[~&ZZ<X1[@_1\}1=+1-X|[]RZX>?R$>*~1?=?>1{}xx#{||_&>~0+x^^!$}[O~]>#+%@xx_^1\]1x%O=O^]1<=0
!>=}|01111+1R/$%|^1##?->*01_0@!X<+/$$R^***-#?|[~X@X+*_+X0X/000?]R%#]$Rx%R1{1%\x0[Z\!~R#X|}@@_%^x!^1|!}=0
]*{0x1&-Z<{$X_>/?^\!_xR/\-~>R+@O?_+&1_%==%><[*{=+x{#x1Z&-x#~=<0|ZR}O@O<{#O1+0R+?!^@x}11?^>0*1$<1~x-?!}\1
/O0<-]~*!?1$X!*=[^}0O*|*R^~*00[+~!OX$]1[R^1{_0%&][_@<{{1!&O|*Z!1Z0]Z/ZX_1@$[//0\Z![#_RO{R+0#}-/<&?-1Ox_$
<_-R//%1%~Z#1#}%0^<0|x@x@O}\|~X11%X[@Z|]<Z^>[0@>^ZO=$*+^{x%<[/!\&0&~|?X0!\+#[1R~O[[x[|>?Z_+?$/-^?/%0X?01
~O<!O>]_%*$Z&0?O}0%|10//x>0RO[}x1^_]|~_0]]@[~O/+|?\R@1|^?[=XX%O}-O^$0[]{00}[XO?\>&<!-Z111{-~1|1}-&Z#@[<O
--00R+$<O1_1-#11&O$~/%\>X@R\}]![#*#$]1-?+#%-{_!!1+RRR<R1!$%%*{]@<\|+\~X0#-Z][<_!?<X$?1{>~1|~1*<-x?>1X!1\
}~/[!>1Z0>x[?-/X#~$O~[x|%O!1ZO%=?{@>0<$%!~}ZO\*$*RZ0RR??0*!Z]X0&*0R>10=X}/<{>/<0+-%%_X1*_-0O0#%+|<0x[x]?
1{*#-1}#+}@{OO~+}_[$-!%$?x*1-1?=@+|x$=^O_$R^00R|?&>{O~>}?|0>@Z}!xOx<~~-!<OOR?*}-%0x?^1Z*x&/0$x]&!xR+RZ!~
$@~O]]@^$<}OXO]R@$/^$&{=x&~^_\%0%R{X|?~*%>^[0~x<=@@1>1{\0Ox_]0}XO[#\0&1|x/&$~!?X#^<>|%Z0??}xOR#?-<[<!<-/
R!/$O~#X~1#=OxR0?R@1/X!<[|/1{X?0|$&]*00{?|0~R@1[@_@]0]$!_#_~11$~%/_^1!$+[?^~/={-Z?=|1|*~-\>1Xx\R+>1$_|O+
?]0~/{]<+\_R<1_x]>\O#Z_<%>0RR%>+[}|~0^=[?RZ1[#0RRZ_/%&{}|[@0Zx>\~1~1{1\%|>>*+~+R1{Z[_]<|!R&#0#@ZR&x}#_-!
]X|?+?[-*-\>//X~/*&_!%Ox%-=_+!O%!@+]!!]|!X|=<1O01!^+-xZ01@*++/+%$OR[]]#?R~|Z\|><?//[<_O}?@>0=+=#=#Z!XO$?
?#0$x?0_*]?1<-<%+\=!x#$_x10x$>x!{+Zx0#1}[>#{!\1O*]/O0-1#_<//-10RR]#[*-X$_O@Z[=0{O\[1*1+x?0X]\=<!>1\OO[!+
x-]\#@x>!#_xX{#|@X|$Xx#++O+00+O+@x^^$/<+}=\~Z}$?/x<@x_{>\-<11O]Z}>]-%+$^@+xO0_&]@O_+#>?x@~^xZ0#]Z~0~~[^_
~=0x}#%?}1}[=1|[-Z0?x$]R\+[]^R+0$*#+&=X-x=%*[-\$<=+0?$\{O\/[>+~1R%+#-<{@%@1O&{?1O1]@X|{^$!|]<*[O&%0\}0_0
&xO1~~OO\11?0?|~#0!@}O@-1$!?1*>\~Z_><~0=[XZZ[+]/Z@^&1+1}0x[~*x=R!0X$=Z0xx-^01R1\!{#x%\!&0@^->!{@&_@}!0x!
@^}{0x_>^1&+#?^@-*>/|@0~{/Z]{00[Z01%+#&0>!}Z*>|1-{?*RO{-Ox+Z>[+1^[>?&<[X%>#~<-{0O_>RO#_1+}-}^Z#\<}1}\01~
Z^Z$/-Z{Z>?_0#&~x[@X#1|Ox#R0&@&~{x~>>R[O1?<\xO{]$*=^1^>Z|??|X#x$0x_O?#{X0}-O@${/x]}_{/Z}X{#]_[&~-0~*#X*[
[-]!R<-*]0_{%[/X]_-\1#]~X0?ZO/01!-{x/$=!^0-{X?]1+[>[$x?|${x&[~}_00~!#%1^X{?0#X0>/!/]^%#x0-~~R@=&>X#0##!_
&RR-^11*1$=1>+X_Z@/@X*/]&_X$0{1}^x@R<\%*}-+000_x/0?OZ_^Z*{@_!0{|[+/0/>*|x\\-O|0>=-}&!x<}$=~X-/}?<=@@|~}&
{0++<>#[/*-O^<!}|!R[]0!|^_0O$^^1=/{0\@$~0?0x}X|!<~?]^}{$]11[X/\#O^0+X}=$0<<Z>?1+/=+0X?&Z#/1_[>/1O01++\X_
^}@|]+0\%^!Z1~%\<@&x{x]=]O$=10R<01_*!R^^%|R\{\Z@!>#!1[<O/@^>R_0|1{X$&[<!~~[x$/&\%<$#/#X/}#<#1|##?^-}~/<|
*#1>^_<\]-!~-=Z0|1%}x]O&X>+\$__0^/R~0}O%#/}!!^^$**?R]~*_+^$\]^Z]{\R--*%=$#^{@|_{|$_&+1|#<@1}_@~$]^O-!*[>
{1#][[>[}$%/_OZ}00{X-[~##\@}}>!^1^x00~@1+*<%x[}\1||=%!0&X/{?Z~%1~~!X*1]-+*%xR}[x@}#+{/ZZ]_|@%]/^O!0~x]?Z
=]x[1>$+-@[<~1^1-|x+#O+~0&%O1|{<?1!R?-O^1~0#}RX1|!0#RX1-0[^%=1?[x]%X#=1]xx[^$&_}~*@=%<~!1{#\%O0%\]1]@Z[_
11=@x$X?Z?><^=<x?~|!]R[}x^\0_~&~}Z[/=R[|0&/0]&*{%O-^|&Z$R0/\><1[x}X10R$/@<&/-&@*ZR%>=X*_!1}XO|/^_+#}~R/\
%#Z##[X\{1??$X0X[&@x~!+$0{%0+10X-!?00#{&+~\]11x_!!_/?@10\!~1//|$xO\Z@0R#$_0-+@?=$=|@<1Z-~*<{~1~!ZZ{=R0!0
~^x1RR=_&<~&O*+>[}\?{#<*+~0x}*0#|+$!0x<!}>1=|/+\_<R}+?%~@!Rx{Ox@xR&+1/0{R$}/XZ?/^+]&?>#{{}10*^/^0|+*@$#1
{{>\^<^|#++@O^0[{|1&R<}@&@[<[#\*x@$}{_[=<^1>0{0^+0<Ox\&!_=#X*]<[{$!\^|?Z0=1>=!-}x-?*\/>R0x[]-O]?]*\]O_|#
=~%R1*!*-|/1$O_^~!0\X|ZX_}RR1&[X_#>Z1X-OX1/@xZ+>%]^0#!@}ZO]@^>^*0X0]?-$_#R$]<R$$}\Z}}}*+<1&_=??[{_~\%^&[
@$/~$%=\0#?<}0>/$>$%[*}0}@~O|!#&0&[x=%<=#%$>R-?+x$]^R*&-=-|#^%0+xO]Z_R#{!!R=&@/[|x@}110*xR%%>[\?O<{*O__$
11]/*|%0^^@&*X/0}@1&?#^<{{-$=~0[R1!~>O0$^-O{O-xZ[!$^x<%^_O%X/%R{/~0=0Z<1~|X&^%/~Z_[!1?{11]R-!<x0R~-/*]|_
x^%x[[$1O@01\>00@_01000~+{R}x%>X|O[Z>]}{R@|1RR*1*!~=1Z0+_0=_!Z!|=]x>~#x>0=Z&!<X1$~%%{{=01!1{R_}0@^^=1#==
X*!ZO#%X0Z>}O=_R[Z0%]{{=11]1X<!}R1/<Z+=1@X%_x?0Z~_{~^ZO+@??O=?&=1\}0?|%1$^%>!Z=/%+>X-0%?|\\|00]x%[+*Z_~|
]R#|@\#~#>1*}XR-%0R@%?*@R<[}0</}^|*[x>&||+}^|]_-O#+_%]*0<$>=~}~\#!#~^]0{/{>!Z!@X*{0^|x=|=@O#X0R{/[?*-x$}
R<-1>\&0]}~0>=&=1_>~ZZ^~^@]>1*{$!*^0X]>=[^^__>-|_&1x/^$%}!<Z{O+1O~O}|~<*^&&xX><|</x}*1*\|<%0>#/|{Z}-[_^-
[\1x0]|?1/+*1/_0X>|_}/!X?_1{ZxR=[/<?~^Z~~%^Xx0=1^O1>_Z/O*%~>x&~*^#Z@!&0//xx/+-#[-[_Z-?@\1*#}0@%!#+0\{{x[
R0[/|OZX<{|*<|O-&~1|!={0@}|@%#R@/<__<O1|x1Z<>*%/[{>-\!-1$x|1~1}@1]OZx*[#x]$@%1#0_%0R<#-Z|0}]#1{R*1~<#!%&
X$~0/~}$&#_O$R*@>-1]#0/1O_^$&?$}X0!&\!Z~1=?-\&!_R+@ORX&0O=<1[}~1>0XO?0]}>}Z+[1*0{^/]0|?&^=X0\*!X/0[@|>R@
//+&>|@}R1~-1*{%_!|^Rx~]-O0/|]+1#Z+X[#}0Z\&1<\%_+|]0-O0R#X<~R<=?{X~O!X[~|X@R<O/&>1@^_$|^/_?/{X?[>_[*$&%>
##0=[#<~=@$XX#}1^[0*/-&1?-#_1O+1=[#0&x1O=%<<#=[|0[>=0}=*0/=$$<+*__/%x_^1X#}%|%&Z{>*\%R$*+X]\+>1X}^0<<\X{
*>\|?$-\11[|11$*#~X1%01=}&%^Z}^0@*_=?R?/*&\0x#|&0##Z[0R%^X&=-XX0%0/X!?[_1Z[_0!]\]0{>|0OR#^@?1$@0^~/>%=0~

Developers

Ship auth in minutes, not months

SDKs, a CLI, and a developer-first API so you can drop identity into any stack without building login from scratch.

Framework-less SDK

A backend-agnostic SDK for wiring authentication, sessions, and permissions into your API or service.

Learn more

Web SDK

One identity SDK for every web framework — drop-in auth UI, hooks, and session management.

Learn more

CLI

Manage environments, applications, and configuration from the terminal without leaving your editor.

Learn more
Soon

Guides

Step-by-step walkthroughs for common identity integrations and migration paths.

Start building with Authdog.

Pick an SDK, follow a quick start, and have working auth in your app today.

Read the Docs
Authdog Logo
SOC 2 Type 2SOC 2 Type 2In ProgressISO 27001ISO 27001In Progress

Product

  • Authentication
  • User Management
  • Access Control
  • Enterprise SSO
  • Pricing

Developers

  • Documentation
  • SDK
  • Web SDK
  • CLI
  • Guides
  • Integrations

Company

  • About
  • Changelog
  • Roadmap
  • Blog
  • Discord Server

Resources

  • Tools
  • Glossary
  • Passkeys Directory
  • Migrate
  • Status

Legal

  • Privacy Policy
  • Cookie Policy
  • Terms of Service

© 2026 Authdog. All rights reserved.

PrivacyTerms
Authdog Logo