🚀 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~

Tools

Free developer tools for identity work

Browser utilities for JWTs, SAML, TLS, OAuth, and visitor signals — built for teams shipping authentication.

SSL Check

Analyze certificate validity, chain trust, and TLS configuration.

Learn more

JWT Playground

Encode, decode, and inspect JWTs in the browser.

Learn more

SAML Decoder

Decode and verify SAML assertions and responses.

Learn more

Know Your Visitor

See your IP, location, device, and live suspect score.

Learn more

JWKS Inspector

Inspect JSON Web Key Sets, key IDs, algorithms, and public keys.

Learn more

OIDC Discovery Inspector

Inspect provider metadata, endpoints, scopes, and capabilities.

Learn more

PKCE Generator

Generate secure verifier and challenge pairs for OAuth flows.

Learn more

TOTP Generator

Generate and inspect time-based one-time passwords locally.

Learn more

Webhook Signature Verifier

Verify signed webhook payloads against a shared secret.

Learn more

Need production-ready auth?

Use these tools to debug and inspect, then ship SSO, MFA, and access control with Authdog.

Start building
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