<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">__NUXT_JSONP__("/guides/testing-strategies/auth0-authentication", (function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,_,$,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aI,aJ,aK,aL,aM,aN,aO,aP,aQ,aR,aS,aT,aU,aV,aW,aX,aY,aZ,a_,a$,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bI,bJ,bK,bL,bM,bN,bO,bP,bQ,bR,bS,bT,bU,bV,bW,bX,bY,bZ,b_,b$,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cI,cJ,cK,cL,cM,cN,cO,cP,cQ,cR,cS,cT,cU,cV,cW,cX,cY,cZ,c_,c$,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,do0,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,dA){return {data:[{algoliaSettings:{appId:"R9KDA5FMJB",apiKey:"b4af59e23bc2fa05281af7dcf13fcae5",indexName:"docs"},guide:{slug:bI,title:bJ,e2eSpecific:true,toc:[{id:bK,depth:ay,text:bL},{id:bM,depth:ay,text:bN},{id:bO,depth:ay,text:bP},{id:bQ,depth:ay,text:bR},{id:bS,depth:ay,text:bT},{id:bU,depth:bV,text:bW},{id:bX,depth:bV,text:bY},{id:bZ,depth:ay,text:b_}],body:{type:bj,children:[{type:b,tag:aj,props:{type:aU},children:[{type:a,value:g},{type:b,tag:az,props:{id:bK},children:[{type:b,tag:s,props:{href:"#What-you-ll-learn",ariaHidden:aa,tabIndex:am},children:[{type:b,tag:c,props:{className:[ab,an]},children:[]}]},{type:b,tag:ab,props:{name:"graduation-cap"},children:[]},{type:a,value:bL}]},{type:a,value:g},{type:b,tag:bk,props:{},children:[{type:a,value:g},{type:b,tag:R,props:{},children:[{type:a,value:"Programmatically authenticate with "},{type:b,tag:s,props:{href:W,rel:[u,v,w],target:x},children:[{type:a,value:X}]},{type:a,value:" via a custom\nCypress command"}]},{type:a,value:g},{type:b,tag:R,props:{},children:[{type:a,value:"Adapting your "},{type:b,tag:s,props:{href:W,rel:[u,v,w],target:x},children:[{type:a,value:X}]},{type:a,value:" application for programmatic\nauthentication during testing"}]},{type:a,value:g}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:aj,props:{type:b$},children:[{type:a,value:g},{type:b,tag:A,props:{},children:[{type:b,tag:ar,props:{className:[aA]},children:[{type:a,value:"Why authenticate programmatically?"}]}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Typically, logging in a user within your app by authenticating via a third-party\nprovider requires visiting login pages hosted on a different domain. Since each\nCypress test is limited to visiting domains of the same origin, we can subvert\nvisiting and testing third-party login pages by programmatically interacting\nwith the third-party authentication API to login a user."}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:aj,props:{type:ca},children:[{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"This guide is setup for testing against an "},{type:b,tag:s,props:{href:W,rel:[u,v,w],target:x},children:[{type:a,value:X}]},{type:a,value:" Single\nPage Application using the\n"},{type:b,tag:s,props:{href:"https:\u002F\u002Fauth0.com\u002Fdocs\u002Funiversal-login\u002Fclassic",rel:[u,v,w],target:x},children:[{type:a,value:"Classic Universal Login Experience"}]},{type:a,value:".\nThis configuration is recommended for a \"Test Tenant\" and\u002For \"Test API\" setup\nfor automated end-to-end testing."}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:az,props:{id:bM},children:[{type:b,tag:s,props:{href:"#Auth0-Application-Setup",ariaHidden:aa,tabIndex:am},children:[{type:b,tag:c,props:{className:[ab,an]},children:[]}]},{type:a,value:bN}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"To get started with Auth0, an application needs to be setup within the\n"},{type:b,tag:s,props:{href:cb,rel:[u,v,w],target:x},children:[{type:a,value:cc}]},{type:a,value:" via the following steps:"}]},{type:a,value:g},{type:b,tag:cd,props:{},children:[{type:a,value:g},{type:b,tag:R,props:{},children:[{type:a,value:"Visit the "},{type:b,tag:s,props:{href:cb,rel:[u,v,w],target:x},children:[{type:a,value:cc}]},{type:a,value:" and click the\n\"Create Application\" button."}]},{type:a,value:g},{type:b,tag:R,props:{},children:[{type:a,value:"Enter the desired name for your application."}]},{type:a,value:g},{type:b,tag:R,props:{},children:[{type:a,value:"Select \"Single Page Application\""}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Once your application is created, visit the\n"},{type:b,tag:s,props:{href:ce,rel:[u,v,w],target:x},children:[{type:a,value:cf}]},{type:a,value:"\ntab under your application, and add your local development URL and port (e.g\n"},{type:b,tag:z,props:{},children:[{type:a,value:"http:\u002F\u002Flocalhost:3000"}]},{type:a,value:") under the following sections:"}]},{type:a,value:g},{type:b,tag:bk,props:{},children:[{type:a,value:g},{type:b,tag:R,props:{},children:[{type:a,value:"Allowed Callback URLs"}]},{type:a,value:g},{type:b,tag:R,props:{},children:[{type:a,value:"Allowed Logout URLs"}]},{type:a,value:g},{type:b,tag:R,props:{},children:[{type:a,value:"Allowed Web Origins"}]},{type:a,value:g},{type:b,tag:R,props:{},children:[{type:a,value:"Allowed Origins (CORS)"}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"In the bottom of\n"},{type:b,tag:s,props:{href:ce,rel:[u,v,w],target:x},children:[{type:a,value:cf}]},{type:a,value:",\nclick\n"},{type:b,tag:s,props:{href:"https:\u002F\u002Fauth0.com\u002Fdocs\u002Fdashboard\u002Freference\u002Fsettings-application#advanced-settings",rel:[u,v,w],target:x},children:[{type:a,value:"Show Advanced Settings"}]},{type:a,value:",\nselect \"Grant Types\" tab and check \"Password\" (unchecked by default)."}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Next, click your Tenant icon (upper right avatar menu) to go to your\n"},{type:b,tag:s,props:{href:"https:\u002F\u002Fmanage.auth0.com\u002F#\u002Ftenant",rel:[u,v,w],target:x},children:[{type:a,value:"Tenant Settings"}]},{type:a,value:". On the\n"},{type:b,tag:s,props:{href:"https:\u002F\u002Fauth0.com\u002Fdocs\u002Fdashboard\u002Freference\u002Fsettings-tenant#general",rel:[u,v,w],target:x},children:[{type:a,value:"General"}]},{type:a,value:"\ntab go to the\n"},{type:b,tag:s,props:{href:"https:\u002F\u002Fauth0.com\u002Fdocs\u002Fdashboard\u002Freference\u002Fsettings-tenant#api-authorization-settings",rel:[u,v,w],target:x},children:[{type:a,value:"API Authorization Settings"}]}]},{type:a,value:g},{type:b,tag:bk,props:{},children:[{type:a,value:g},{type:b,tag:R,props:{},children:[{type:a,value:"Set \"Default Audience\" to the Audience URL for the Application you are testing\n(e.g. "},{type:b,tag:z,props:{},children:[{type:a,value:"https:\u002F\u002Fyour-api-id.auth0.com\u002Fapi\u002Fv2\u002F"}]},{type:a,value:j}]},{type:a,value:g},{type:b,tag:R,props:{},children:[{type:a,value:"Set \"Default Directory\" to "},{type:b,tag:ar,props:{},children:[{type:a,value:"\"Username-Password-Authentication\""}]}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:aj,props:{},children:[{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Refer to the\n"},{type:b,tag:s,props:{href:"https:\u002F\u002Fauth0.com\u002Fdocs\u002Fdashboard\u002Freference\u002Fsettings-tenant",rel:[u,v,w],target:x},children:[{type:a,value:"Auth0 Tenant Settings documentation"}]},{type:a,value:"\nfor additional details."}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Finally, create a user in the\n"},{type:b,tag:s,props:{href:"https:\u002F\u002Fauth0.com\u002Fdocs\u002Fconnections\u002Fdatabase#using-the-auth0-user-store",rel:[u,v,w],target:x},children:[{type:a,value:"Auth0 User Store"}]},{type:a,value:"\nfor testing with Cypress. This testing-dedicated target user will be login to\nyour application within your test specs. If required for your testing purposes,\nyou can make as many users needed to test your specific application."}]},{type:a,value:g},{type:b,tag:az,props:{id:bO},children:[{type:b,tag:s,props:{href:"#Setting-Auth0-app-credentials-in-Cypress",ariaHidden:aa,tabIndex:am},children:[{type:b,tag:c,props:{className:[ab,an]},children:[]}]},{type:a,value:bP}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"To have access to test user credentials within our tests we need to configure\nCypress to use the "},{type:b,tag:s,props:{href:W,rel:[u,v,w],target:x},children:[{type:a,value:X}]},{type:a,value:" environment variables set in the\n"},{type:b,tag:z,props:{},children:[{type:a,value:bl}]},{type:a,value:" file."}]},{type:a,value:g},{type:b,tag:"code-group",props:{},children:[{type:a,value:g},{type:b,tag:bm,props:{label:"cypress.config.js",active:cg},children:[{type:a,value:g},{type:b,tag:O,props:{className:[S]},children:[{type:b,tag:T,props:{className:[U,ch]},children:[{type:b,tag:z,props:{},children:[{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:ci},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:aV}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:cj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:bn}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:aV}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:bo}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:aW}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:ck},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:cl}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:cm}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:cn},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:co},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:bp}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:cp},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:bq}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:cq},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aB}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:cr},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aO}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:cs},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aX}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:ct},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aY}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:cu},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:br}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:g}]}]}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:bm,props:{label:"cypress.config.ts"},children:[{type:a,value:g},{type:b,tag:O,props:{className:[S]},children:[{type:b,tag:T,props:{className:[U,"language-ts"]},children:[{type:b,tag:z,props:{},children:[{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:as}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:ci},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:at}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:cj}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:bn}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:aV}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:bo}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:aW}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:bs}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:cv}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:cm}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:cn},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:co},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:bp}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:cp},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:bq}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:cq},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aB}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:cr},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aO}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:cs},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aX}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:ct},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aY}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:cu},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:br}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:g}]}]}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:bm,props:{label:"plugins file (deprecated)"},children:[{type:a,value:g},{type:b,tag:"template",props:{"v-slot:alert":cg},children:[],content:[{type:b,tag:aj,props:{type:ca},children:[{type:a,value:g},{type:b,tag:A,props:{},children:[{type:b,tag:ar,props:{className:[aA]},children:[{type:b,tag:ab,props:{name:"exclamation-triangle"},children:[]},{type:a,value:"\nDeprecated"}]}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"The plugins file is deprecated as of Cypress CFG_VERSION. We recommend\nthat you update your configuration. Please see the\n"},{type:b,tag:cw,props:{to:"\u002Fguides\u002Ftooling\u002Fplugins-guide"},children:[{type:a,value:"plugins guide"}]},{type:a,value:" and the\n"},{type:b,tag:cw,props:{to:"\u002Fguides\u002Freferences\u002Fmigration-guide"},children:[{type:a,value:"migration guide"}]},{type:a,value:" for more information."}]},{type:a,value:g}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:O,props:{className:[S]},children:[{type:b,tag:T,props:{className:[U,ch]},children:[{type:b,tag:z,props:{},children:[{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F cypress\u002Fplugins\u002Findex.js"}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:bn}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:aV}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:bo}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:aW}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:ck},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,"method-variable",aZ,t,n,i]},children:[{type:a,value:cl}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,aC]},children:[{type:a,value:"on"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:" config"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Y,k]},children:[{type:a,value:Z}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:"auth0_username"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:bp}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:"auth0_password"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:bq}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:"auth0_domain"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aB}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:"auth0_audience"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aO}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:"auth0_scope"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aX}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:"auth0_client_id"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aY}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:"auth0_client_secret"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:br}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,q,$]},children:[{type:a,value:bt}]},{type:a,value:" config\n"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:g}]}]}]},{type:a,value:g}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:az,props:{id:bQ},children:[{type:b,tag:s,props:{href:"#Custom-Command-for-Auth0-Authentication",ariaHidden:aa,tabIndex:am},children:[{type:b,tag:c,props:{className:[ab,an]},children:[]}]},{type:a,value:bR}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Below is a command to programmatically login into "},{type:b,tag:s,props:{href:W,rel:[u,v,w],target:x},children:[{type:a,value:X}]},{type:a,value:",\nusing the\n"},{type:b,tag:s,props:{href:cx,rel:[u,v,w],target:x},children:[{type:a,value:cy}]},{type:a,value:"\nand set an item in localStorage with the authenticated users details, which we\nwill use in our application code to verify we are authenticated under test."}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"The "},{type:b,tag:z,props:{},children:[{type:a,value:a_}]},{type:a,value:" command will execute the following steps:"}]},{type:a,value:g},{type:b,tag:cd,props:{},children:[{type:a,value:g},{type:b,tag:R,props:{},children:[{type:a,value:"Use the\n"},{type:b,tag:s,props:{href:cx,rel:[u,v,w],target:x},children:[{type:a,value:cy}]},{type:a,value:"\nto perform the programmatic login."}]},{type:a,value:g},{type:b,tag:R,props:{},children:[{type:a,value:"Finally the "},{type:b,tag:z,props:{},children:[{type:a,value:cz}]},{type:a,value:" localStorage item is set with the "},{type:b,tag:z,props:{},children:[{type:a,value:"access token"}]},{type:a,value:",\n"},{type:b,tag:z,props:{},children:[{type:a,value:cA}]},{type:a,value:" and user profile."}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:O,props:{className:[S]},children:[{type:b,tag:T,props:{className:[U,ac]},children:[{type:b,tag:z,props:{},children:[{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F cypress\u002Fsupport\u002Fcommands.js"}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:cB}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:cC}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:cD}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,aC]},children:[{type:a,value:bu},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:cE},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:cF},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:cE}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Y,k]},children:[{type:a,value:Z}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:a$},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"log"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,aP]},children:[{type:b,tag:c,props:{className:[d,ad,o]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"Logging in as "}]},{type:b,tag:c,props:{className:[d,aD]},children:[{type:b,tag:c,props:{className:[d,_,e]},children:[{type:a,value:aE}]},{type:a,value:bu},{type:b,tag:c,props:{className:[d,_,e]},children:[{type:a,value:p}]}]},{type:b,tag:c,props:{className:[d,ad,o]},children:[{type:a,value:ae}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:" client_id "},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'auth0_client_id'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:" client_secret "},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'auth0_client_secret'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:" audience "},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'auth0_audience'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:" scope "},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'auth0_scope'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:"\n\n    cy"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:cG}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n      method"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'POST'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n      url"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aP]},children:[{type:b,tag:c,props:{className:[d,ad,o]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:ba}]},{type:b,tag:c,props:{className:[d,aD]},children:[{type:b,tag:c,props:{className:[d,_,e]},children:[{type:a,value:aE}]},{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:cH}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,_,e]},children:[{type:a,value:p}]}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"\u002Foauth\u002Ftoken"}]},{type:b,tag:c,props:{className:[d,ad,o]},children:[{type:a,value:ae}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n      body"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n        grant_type"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'password'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        username"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        password"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        audience"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        scope"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        client_id"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        client_secret"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:cI}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,aC]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:" body "},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Y,k]},children:[{type:a,value:Z}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:" claims "},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:" jwt"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"decode"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:bb},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:cA}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n        nickname"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        name"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        picture"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        updated_at"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        email"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        email_verified"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        sub"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        exp"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:" claims\n\n      "},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:" item "},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n        body"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:bc},{type:b,tag:c,props:{className:[d,"spread",k]},children:[{type:a,value:"..."}]},{type:a,value:bb},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n          decodedToken"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n            claims"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n            user"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n              nickname"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n              name"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n              picture"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n              updated_at"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n              email"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n              email_verified"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n              sub"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n            "},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n            audience"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n            client_id"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bc},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:av},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        expiresAt"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:" exp"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:"\n\n      "},{type:b,tag:c,props:{className:[d,aw,ax]},children:[{type:a,value:aQ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:cJ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"setItem"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'auth0Cypress'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,cK,ak]},children:[{type:a,value:cL}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"stringify"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:"item"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:"\n\n      cy"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"visit"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'\u002F'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:g}]}]}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"With our Auth0 app setup properly in the Auth0 Developer console, necessary\nenvironment variables in place, and our "},{type:b,tag:z,props:{},children:[{type:a,value:a_}]},{type:a,value:" command implemented,\nwe will be able to authenticate with Auth0 while our app is under test. Below is\na test to login as a user via "},{type:b,tag:s,props:{href:W,rel:[u,v,w],target:x},children:[{type:a,value:X}]},{type:a,value:", complete the\nonboarding process and logout."}]},{type:a,value:g},{type:b,tag:O,props:{className:[S]},children:[{type:b,tag:T,props:{className:[U,ac]},children:[{type:b,tag:z,props:{},children:[{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"describe"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'Auth0'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:n}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"beforeEach"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:n}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:a$},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"task"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'db:seed'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:a$},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:a_}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'auth_username'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'auth_password'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"it"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'shows onboarding'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:n}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:a$},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"contains"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'Get Started'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"should"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'be.visible'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:g}]}]}]},{type:a,value:g},{type:b,tag:aj,props:{type:b$},children:[{type:a,value:g},{type:b,tag:A,props:{},children:[{type:b,tag:ar,props:{className:[aA]},children:[{type:a,value:"Try it out"}]}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:cM},{type:b,tag:s,props:{href:"https:\u002F\u002Fgithub.com\u002Fcypress-io\u002Fcypress-realworld-app\u002Fblob\u002Fdevelop\u002Fcypress\u002Ftests\u002Fui-auth-providers\u002Fauth0.spec.ts",rel:[u,v,w],target:x},children:[{type:a,value:"runnable version of this test"}]},{type:a,value:cN},{type:b,tag:s,props:{href:aR,rel:[u,v,w],target:x},children:[{type:a,value:aS}]},{type:a,value:h}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:az,props:{id:bS},children:[{type:b,tag:s,props:{href:"#Adapting-an-Auth0-App-for-Testing",ariaHidden:aa,tabIndex:am},children:[{type:b,tag:c,props:{className:[ab,an]},children:[]}]},{type:a,value:bT}]},{type:a,value:g},{type:b,tag:aj,props:{type:aU},children:[{type:a,value:g},{type:b,tag:A,props:{},children:[{type:b,tag:ar,props:{className:[aA]},children:[{type:a,value:cO}]}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"The previous sections focused on the recommended Auth0 authentication practice\nwithin Cypress tests. To use this practice it is assumed you are testing an app\nappropriately built or adapted to use Auth0."}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"The following sections provides guidance on building or adapting an app to use\nAuth0 authentication."}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:cM},{type:b,tag:s,props:{href:aR,rel:[u,v,w],target:x},children:[{type:a,value:aS}]},{type:a,value:" is\nused and provides configuration and runnable code for both the React SPA and the\nExpress back end."}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"The front end uses the "},{type:b,tag:s,props:{href:bv,rel:[u,v,w],target:x},children:[{type:a,value:bw}]},{type:a,value:"\nfor React Single Page Applications (SPA), which uses the\n"},{type:b,tag:s,props:{href:"https:\u002F\u002Fgithub.com\u002Fauth0\u002Fauth0-spa-js",rel:[u,v,w],target:x},children:[{type:a,value:"auth0-spa-js SDK"}]},{type:a,value:" underneath. The back\nend uses "},{type:b,tag:s,props:{href:cP,rel:[u,v,w],target:x},children:[{type:a,value:cQ}]},{type:a,value:" to validate JWT's\nagainst "},{type:b,tag:s,props:{href:W,rel:[u,v,w],target:x},children:[{type:a,value:X}]},{type:a,value:h}]},{type:a,value:g},{type:b,tag:aj,props:{type:aU},children:[{type:a,value:g},{type:b,tag:A,props:{},children:[{type:b,tag:ar,props:{className:[aA]},children:[{type:a,value:cO}]}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Use the "},{type:b,tag:z,props:{},children:[{type:a,value:"yarn dev:auth0"}]},{type:a,value:" command when starting the\n"},{type:b,tag:s,props:{href:aR,rel:[u,v,w],target:x},children:[{type:a,value:aS}]},{type:a,value:h}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:cR,props:{id:bU},children:[{type:b,tag:s,props:{href:"#Adapting-the-back-end",ariaHidden:aa,tabIndex:am},children:[{type:b,tag:c,props:{className:[ab,an]},children:[]}]},{type:a,value:bW}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"In order to validate API requests from the frontend, we install\n"},{type:b,tag:s,props:{href:cP,rel:[u,v,w],target:x},children:[{type:a,value:cQ}]},{type:a,value:" and\n"},{type:b,tag:s,props:{href:"https:\u002F\u002Fgithub.com\u002Fauth0\u002Fnode-jwks-rsa",rel:[u,v,w],target:x},children:[{type:a,value:"jwks-rsa"}]},{type:a,value:" and configure validation for\nJWT's from "},{type:b,tag:s,props:{href:W,rel:[u,v,w],target:x},children:[{type:a,value:X}]},{type:a,value:h}]},{type:a,value:g},{type:b,tag:O,props:{className:[S]},children:[{type:b,tag:T,props:{className:[U,ac]},children:[{type:b,tag:z,props:{},children:[{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:cS}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:as}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aF]},children:[{type:a,value:cT}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:at}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'express-jwt'"}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:as}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aF]},children:[{type:a,value:"jwksRsa"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:at}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'jwks-rsa'"}]},{type:a,value:"\n\ndotenv"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:aW}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:" auth0JwtConfig "},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n  secret"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:" jwksRsa"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"expressJwtSecret"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n    cache"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,cU]},children:[{type:a,value:aa}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n    rateLimit"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,cU]},children:[{type:a,value:aa}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n    jwksRequestsPerMinute"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,"number"]},children:[{type:a,value:"5"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n    jwksUri"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aP]},children:[{type:b,tag:c,props:{className:[d,ad,o]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:ba}]},{type:b,tag:c,props:{className:[d,aD]},children:[{type:b,tag:c,props:{className:[d,_,e]},children:[{type:a,value:aE}]},{type:a,value:ao},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aB}]},{type:b,tag:c,props:{className:[d,_,e]},children:[{type:a,value:p}]}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"\u002F.well-known\u002Fjwks.json"}]},{type:b,tag:c,props:{className:[d,ad,o]},children:[{type:a,value:ae}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F Validate the audience and the issuer."}]},{type:a,value:"\n  audience"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:I},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aO}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n  issuer"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aP]},children:[{type:b,tag:c,props:{className:[d,ad,o]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:ba}]},{type:b,tag:c,props:{className:[d,aD]},children:[{type:b,tag:c,props:{className:[d,_,e]},children:[{type:a,value:aE}]},{type:a,value:ao},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aB}]},{type:b,tag:c,props:{className:[d,_,e]},children:[{type:a,value:p}]}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"\u002F"}]},{type:b,tag:c,props:{className:[d,ad,o]},children:[{type:a,value:ae}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n  algorithms"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aG}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'RS256'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aH}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:g}]}]}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Next, we'll define an Express middleware function to be use in our routes to\nverify the "},{type:b,tag:s,props:{href:W,rel:[u,v,w],target:x},children:[{type:a,value:X}]},{type:a,value:" JWT sent by the front end API requests as\nthe "},{type:b,tag:z,props:{},children:[{type:a,value:"Bearer"}]},{type:a,value:" token."}]},{type:a,value:g},{type:b,tag:O,props:{className:[S]},children:[{type:b,tag:T,props:{className:[U,ac]},children:[{type:b,tag:z,props:{},children:[{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:cS}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:ap}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:bs}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:cV},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:cT}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:"auth0JwtConfig"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"unless"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:" path"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aG}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'\u002FtestData\u002F*'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aH}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:g}]}]}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Once this helper is defined, we can use globally to apply to all routes:"}]},{type:a,value:g},{type:b,tag:O,props:{className:[S]},children:[{type:b,tag:T,props:{className:[U,ac]},children:[{type:b,tag:z,props:{},children:[{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F backend\u002Fapp.ts"}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:bd}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:as}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aF]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:cV},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:at}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'.\u002Fhelpers'"}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:ap}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,q,$]},children:[{type:a,value:bx}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:ao},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:cW}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n  app"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"use"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:"checkJwt"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F routes ..."}]},{type:a,value:g}]}]}]},{type:a,value:g},{type:b,tag:cR,props:{id:bX},children:[{type:b,tag:s,props:{href:"#Adapting-the-front-end",ariaHidden:aa,tabIndex:am},children:[{type:b,tag:c,props:{className:[ab,an]},children:[]}]},{type:a,value:bY}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"We need to update our front end React app to allow for authentication with\n"},{type:b,tag:s,props:{href:W,rel:[u,v,w],target:x},children:[{type:a,value:X}]},{type:a,value:". As mentioned above, the\n"},{type:b,tag:s,props:{href:bv,rel:[u,v,w],target:x},children:[{type:a,value:bw}]},{type:a,value:" for React Single Page\nApplications (SPA) is used."}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"First, we create a "},{type:b,tag:z,props:{},children:[{type:a,value:"AppAuth0.tsx"}]},{type:a,value:" container to render our application as it is\nauthenticated with "},{type:b,tag:s,props:{href:W,rel:[u,v,w],target:x},children:[{type:a,value:X}]},{type:a,value:". The component is identical to the\n"},{type:b,tag:z,props:{},children:[{type:a,value:"App.tsx"}]},{type:a,value:" component, but uses the "},{type:b,tag:z,props:{},children:[{type:a,value:by}]},{type:a,value:" React Hook, removes the need for\nthe Sign Up and Sign In routes and wraps the component with the\n"},{type:b,tag:z,props:{},children:[{type:a,value:bz}]},{type:a,value:" higher order function (HOC)."}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"A "},{type:b,tag:z,props:{},children:[{type:a,value:aI}]},{type:a,value:" hook is added to get the access token for the authenticated user\nand send an "},{type:b,tag:z,props:{},children:[{type:a,value:"AUTH0"}]},{type:a,value:" event with the "},{type:b,tag:z,props:{},children:[{type:a,value:be}]},{type:a,value:" and "},{type:b,tag:z,props:{},children:[{type:a,value:d}]},{type:a,value:" objects to work with the\nexisting authentication layer ("},{type:b,tag:z,props:{},children:[{type:a,value:"authMachine.ts"}]},{type:a,value:cX}]},{type:a,value:g},{type:b,tag:O,props:{className:[S]},children:[{type:b,tag:T,props:{className:[U,ac]},children:[{type:b,tag:z,props:{},children:[{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:cY}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:bd}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:as}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aF]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:cZ},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:c_},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:at}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'@auth0\u002Fauth0-react'"}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:ap}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aZ,n]},children:[{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:aJ}]}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Y,k]},children:[{type:a,value:Z}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:c$},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:aK},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:da},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:by}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:ap}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:aI}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Y,k]},children:[{type:a,value:Z}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:bA}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:n}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:bB}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:aL},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q,$]},children:[{type:a,value:bC}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:bD}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:db},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:bf}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'AUTH0'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:aK},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:aL},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aG}]},{type:a,value:be},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bE},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aH}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:ap}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:dc},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:dd},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:bF}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:de},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:aM}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'authorized'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:aT}]},{type:a,value:bg},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:aM}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'refreshing'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:aT}]},{type:a,value:bg},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:aM}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'updating'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,q,$]},children:[{type:a,value:bt}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aN}]},{type:a,value:O}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,af]},children:[{type:a,value:df}]},{type:b,tag:c,props:{className:[d,ag,ah]},children:[{type:b,tag:c,props:{className:[d,ai,e]},children:[{type:a,value:C}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:dg},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:bj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:al}]}]},{type:b,tag:c,props:{className:[d,aq]},children:[{type:a,value:"\u002F\u002F ...\u003C\u002Fdiv\u003E\n}\n\nexport default withAuthenticationRequired(AppAuth0)\n"}]}]}]}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Note: The full\n"},{type:b,tag:s,props:{href:dh,rel:[u,v,w],target:x},children:[{type:a,value:di}]},{type:a,value:cN},{type:b,tag:s,props:{href:aR,rel:[u,v,w],target:x},children:[{type:a,value:aS}]},{type:a,value:h}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Next, we update our entry point ("},{type:b,tag:z,props:{},children:[{type:a,value:"index.tsx"}]},{type:a,value:") to wrap our application with the\n"},{type:b,tag:z,props:{},children:[{type:a,value:"\u003CAuth0Provider\u003E"}]},{type:a,value:" from the\n"},{type:b,tag:s,props:{href:bv,rel:[u,v,w],target:x},children:[{type:a,value:bw}]},{type:a,value:" SDK providing a custom\n"},{type:b,tag:z,props:{},children:[{type:a,value:bh}]},{type:a,value:". We pass props for the Auth0 environment variables set in\n"},{type:b,tag:z,props:{},children:[{type:a,value:bl}]},{type:a,value:" above, and render our "},{type:b,tag:z,props:{},children:[{type:a,value:"\u003CAppAuth0\u003E"}]},{type:a,value:" component as the application."}]},{type:a,value:g},{type:b,tag:O,props:{className:[S]},children:[{type:b,tag:T,props:{className:[U,ac]},children:[{type:b,tag:z,props:{},children:[{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F src\u002Findex.tsx"}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:bd}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:as}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aF]},children:[{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:aJ}]}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:at}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"\".\u002Fcontainers\u002FAppAuth0\""}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F .."}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aZ,n]},children:[{type:a,value:bh}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,aC]},children:[{type:a,value:"appState"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:" any"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Y,k]},children:[{type:a,value:Z}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n  history"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"replace"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:"appState "},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:bF}]},{type:a,value:" appState"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:"returnTo"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:aT}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aw,ax]},children:[{type:a,value:aQ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:dj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:"pathname"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,q,$]},children:[{type:a,value:bx}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:ao},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:cW}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:"ReactDOM"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"render"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aN}]},{type:b,tag:c,props:{className:[d,ak]},children:[{type:a,value:dk}]}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,af]},children:[{type:a,value:"domain"}]},{type:b,tag:c,props:{className:[d,ag,ah]},children:[{type:b,tag:c,props:{className:[d,ai,e]},children:[{type:a,value:C}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:ao},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aB}]},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:bG}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,af]},children:[{type:a,value:"clientId"}]},{type:b,tag:c,props:{className:[d,ag,ah]},children:[{type:b,tag:c,props:{className:[d,ai,e]},children:[{type:a,value:C}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:ao},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aY}]},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:bG}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,af]},children:[{type:a,value:"redirectUri"}]},{type:b,tag:c,props:{className:[d,ag,ah]},children:[{type:b,tag:c,props:{className:[d,ai,e]},children:[{type:a,value:C}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,aw,ax]},children:[{type:a,value:aQ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:dj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:"origin"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,af]},children:[{type:a,value:"audience"}]},{type:b,tag:c,props:{className:[d,ag,ah]},children:[{type:b,tag:c,props:{className:[d,ai,e]},children:[{type:a,value:C}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:ao},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aO}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,af]},children:[{type:a,value:"scope"}]},{type:b,tag:c,props:{className:[d,ag,ah]},children:[{type:b,tag:c,props:{className:[d,ai,e]},children:[{type:a,value:C}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:ao},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:aX}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,af]},children:[{type:a,value:bh}]},{type:b,tag:c,props:{className:[d,ag,ah]},children:[{type:b,tag:c,props:{className:[d,ai,e]},children:[{type:a,value:C}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:bh},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:al}]}]},{type:b,tag:c,props:{className:[d,aq]},children:[{type:a,value:H}]},{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aN}]},{type:b,tag:c,props:{className:[d,ak]},children:[{type:a,value:dl}]}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,af]},children:[{type:a,value:dm}]},{type:b,tag:c,props:{className:[d,ag,ah]},children:[{type:b,tag:c,props:{className:[d,ai,e]},children:[{type:a,value:C}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:dm},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:al}]}]},{type:b,tag:c,props:{className:[d,aq]},children:[{type:a,value:av}]},{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aN}]},{type:b,tag:c,props:{className:[d,ak]},children:[{type:a,value:dn}]}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,af]},children:[{type:a,value:do0}]},{type:b,tag:c,props:{className:[d,ag,ah]},children:[{type:b,tag:c,props:{className:[d,ai,e]},children:[{type:a,value:C}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:do0},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:al}]}]},{type:b,tag:c,props:{className:[d,aq]},children:[{type:a,value:bc}]},{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aN}]},{type:b,tag:c,props:{className:[d,ak]},children:[{type:a,value:aJ}]}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:"\u002F\u003E"}]}]},{type:b,tag:c,props:{className:[d,aq]},children:[{type:a,value:av}]},{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:bi}]},{type:b,tag:c,props:{className:[d,ak]},children:[{type:a,value:dn}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:al}]}]},{type:b,tag:c,props:{className:[d,aq]},children:[{type:a,value:H}]},{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:bi}]},{type:b,tag:c,props:{className:[d,ak]},children:[{type:a,value:dl}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:al}]}]},{type:b,tag:c,props:{className:[d,aq]},children:[{type:a,value:G}]},{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:bi}]},{type:b,tag:c,props:{className:[d,ak]},children:[{type:a,value:dk}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:al}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,aw,ax]},children:[{type:a,value:"document"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"getElementById"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"\"root\""}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q,$]},children:[{type:a,value:dp}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F render passport-local App.tsx"}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:g}]}]}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"An update to our\n"},{type:b,tag:s,props:{href:dh,rel:[u,v,w],target:x},children:[{type:a,value:di}]},{type:a,value:"\nis needed to conditionally use the "},{type:b,tag:z,props:{},children:[{type:a,value:cz}]},{type:a,value:" localStorage item."}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"In the code below, we conditionally apply a "},{type:b,tag:z,props:{},children:[{type:a,value:aI}]},{type:a,value:" block based on being\nunder test with Cypress (using "},{type:b,tag:z,props:{},children:[{type:a,value:"window.Cypress"}]},{type:a,value:cX}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"In addition, we will update the export to be wrapped with\n"},{type:b,tag:z,props:{},children:[{type:a,value:bz}]},{type:a,value:" if we are not under test in Cypress. This allows\nour application to work with the "},{type:b,tag:s,props:{href:W,rel:[u,v,w],target:x},children:[{type:a,value:X}]},{type:a,value:" redirect login flow\nin development\u002Fproduction but not when under test in Cypress."}]},{type:a,value:g},{type:b,tag:O,props:{className:[S]},children:[{type:b,tag:T,props:{className:[U,ac]},children:[{type:b,tag:z,props:{},children:[{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:cY}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:bd}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:as}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aF]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:cZ},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:c_},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:at}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"\"@auth0\u002Fauth0-react\""}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:ap}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aZ,n]},children:[{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:aJ}]}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Y,k]},children:[{type:a,value:Z}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:c$},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:aK},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:da},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:by}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:ap}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:aI}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Y,k]},children:[{type:a,value:Z}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:bA}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:n}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:bB}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:av},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:aL},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q,$]},children:[{type:a,value:bC}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:bD}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:dq},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:bf}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:bH}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:aK},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:aL},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aG}]},{type:a,value:be},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bE},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aH}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F If under test in Cypress, get credentials from \"auth0Cypress\" localstorage item and send event to our state management to log the user into the SPA"}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,q,$]},children:[{type:a,value:bx}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,aw,ax]},children:[{type:a,value:aQ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:V}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:aI}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Y,k]},children:[{type:a,value:Z}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:" auth0 "},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,cK,ak]},children:[{type:a,value:cL}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"parse"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,aw,ax]},children:[{type:a,value:cJ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"getItem"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"\"auth0Cypress\""}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:bG}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:db},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:bf}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:bH}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n        user"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:dr},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:bb}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:"decodedToken"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:be}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        token"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:dr},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:bb}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:"access_token"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aG}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aH}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q,$]},children:[{type:a,value:dp}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:aI}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Y,k]},children:[{type:a,value:Z}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:bA}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:n}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:bB}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:av},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:aL},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q,$]},children:[{type:a,value:bC}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:bD}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:dq},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:bf}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:bH}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:aK},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:aL},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aG}]},{type:a,value:"isAuthenticated"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:aK},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bE},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aH}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:ap}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:K}]},{type:a,value:dc},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:dd},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:bF}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:de},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:aM}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"\"authorized\""}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:aT}]},{type:a,value:bg},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:aM}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"\"refreshing\""}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:aT}]},{type:a,value:bg},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:aM}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"\"updating\""}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,q,$]},children:[{type:a,value:bt}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aN}]},{type:a,value:O}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,af]},children:[{type:a,value:df}]},{type:b,tag:c,props:{className:[d,ag,ah]},children:[{type:b,tag:c,props:{className:[d,ai,e]},children:[{type:a,value:C}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:dg},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:a,value:bj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:al}]}]},{type:b,tag:c,props:{className:[d,aq]},children:[{type:a,value:"\n      \u002F\u002F ...\n    "}]},{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,N]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:bi}]},{type:a,value:O}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:al}]}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F Conditional export wrapped with `withAuthenticationRequired` if we are not under test in Cypress."}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:"let"}]},{type:a,value:" appAuth0 "},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aw,ax]},children:[{type:a,value:aQ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:V}]}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:"?"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:aJ}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:bz}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:aJ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:J}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:bs}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,q,P]},children:[{type:a,value:cv}]},{type:a,value:" appAuth0\n"}]}]}]},{type:a,value:g},{type:b,tag:az,props:{id:bZ},children:[{type:b,tag:s,props:{href:"#Auth0-Rate-Limiting-Logins",ariaHidden:aa,tabIndex:am},children:[{type:b,tag:c,props:{className:[ab,an]},children:[]}]},{type:a,value:b_}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Be aware of the rate limit statement in the Auth0 documentation:"}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:b,tag:s,props:{href:"https:\u002F\u002Fauth0.com\u002Fdocs\u002Fconnections\u002Fdatabase\u002Frate-limits",rel:[u,v,w],target:x},children:[{type:a,value:"Auth0 Rate Limit"}]},{type:a,value:" -\n\"If a user attempts to login 20 times per minute as the same user from the same\nlocation, regardless of having the correct credentials, the rate limit will come\ninto effect. When this happens, the user can make 10 attempts per minute.\""}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"This limit can be reached as the size of a test suite grows along with enabling\n"},{type:b,tag:s,props:{href:"https:\u002F\u002Fon.cypress.io\u002Fparallelization",rel:[u,v,w],target:x},children:[{type:a,value:"parallelized runs"}]},{type:a,value:" to speed up test run\nduration."}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"If you run into this rate limit, a programmatic approach can be added to the\n"},{type:b,tag:z,props:{},children:[{type:a,value:"loginByAuth0"}]},{type:a,value:" command to clear a blocked IP prior to the test run."}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Next you'll need to obtain a\n"},{type:b,tag:s,props:{href:"https:\u002F\u002Fauth0.com\u002Fdocs\u002Fapi\u002Fmanagement\u002Fv2\u002Ftokens",rel:[u,v,w],target:x},children:[{type:a,value:"API token"}]},{type:a,value:" to interact with\nthe "},{type:b,tag:s,props:{href:ds,rel:[u,v,w],target:x},children:[{type:a,value:dt}]},{type:a,value:". This token\nis a JSON Web Token (JWT) and it contains specific granted permissions for the\nAPI."}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"Add this token as environment variable "},{type:b,tag:z,props:{},children:[{type:a,value:du}]},{type:a,value:" to our\n"},{type:b,tag:s,props:{href:aR,rel:[u,v,w],target:x},children:[{type:a,value:aS}]},{type:a,value:g},{type:b,tag:z,props:{},children:[{type:a,value:bl}]},{type:a,value:" with your API token."}]},{type:a,value:g},{type:b,tag:O,props:{className:[S]},children:[{type:b,tag:T,props:{className:[U,ac]},children:[{type:b,tag:z,props:{},children:[{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F .env"}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F ... additional keys"}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:du}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:C}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'YOUR-MANAGEMENT-API-TOKEN'"}]},{type:a,value:g}]}]}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:a,value:"With this token in place, we can add interaction with the\n"},{type:b,tag:s,props:{href:"https:\u002F\u002Fauth0.com\u002Fdocs\u002Fapi\u002Fmanagement\u002Fv2#!\u002FAnomaly\u002Fdelete_ips_by_id",rel:[u,v,w],target:x},children:[{type:a,value:"Auth0 Anomaly remove the blocked IP address endpoint"}]},{type:a,value:"\nto our "},{type:b,tag:z,props:{},children:[{type:a,value:a_}]},{type:a,value:" command. This will send a delete request to\n"},{type:b,tag:s,props:{href:ds,rel:[u,v,w],target:x},children:[{type:a,value:dt}]},{type:a,value:" anomaly\nendpoint to unblock an IP that may become blocked during the test run."}]},{type:a,value:g},{type:b,tag:aj,props:{type:aU},children:[{type:a,value:g},{type:b,tag:A,props:{},children:[{type:b,tag:ar,props:{className:[aA]},children:[{type:a,value:"Tip"}]}]},{type:a,value:g},{type:b,tag:A,props:{},children:[{type:b,tag:s,props:{href:"http:\u002F\u002Ficanhazip.com\u002F",rel:[u,v,w],target:x},children:[{type:a,value:"icanhazip.com"}]},{type:a,value:" is a free, hosted service to find a\nsystem's current external IP address."}]},{type:a,value:g}]},{type:a,value:g},{type:b,tag:O,props:{className:[S]},children:[{type:b,tag:T,props:{className:[U,ac]},children:[{type:b,tag:z,props:{},children:[{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,i]},children:[{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:cB}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:cC}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:cD}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,aC]},children:[{type:a,value:bu},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:cF}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Y,k]},children:[{type:a,value:Z}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:L},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F Useful when rate limited by Auth0"}]},{type:a,value:"\n  cy"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"exec"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'curl -4 icanhazip.com'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:"its"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'stdout'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:cI}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,aC]},children:[{type:a,value:dv}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Y,k]},children:[{type:a,value:Z}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n      cy"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:cG}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n        method"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'DELETE'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        url"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,aP]},children:[{type:b,tag:c,props:{className:[d,ad,o]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:ba}]},{type:b,tag:c,props:{className:[d,aD]},children:[{type:b,tag:c,props:{className:[d,_,e]},children:[{type:a,value:aE}]},{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:a,value:bc},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:cH}]},{type:a,value:av},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,_,e]},children:[{type:a,value:p}]}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"\u002Fapi\u002Fv2\u002Fanomaly\u002Fblocks\u002Fips\u002F"}]},{type:b,tag:c,props:{className:[d,aD]},children:[{type:b,tag:c,props:{className:[d,_,e]},children:[{type:a,value:aE}]},{type:a,value:dv},{type:b,tag:c,props:{className:[d,_,e]},children:[{type:a,value:p}]}]},{type:b,tag:c,props:{className:[d,ad,o]},children:[{type:a,value:ae}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n        auth"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:"\n          bearer"},{type:b,tag:c,props:{className:[d,k]},children:[{type:a,value:B}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,M]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,t,n,i]},children:[{type:a,value:y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:l}]},{type:b,tag:c,props:{className:[d,o]},children:[{type:a,value:"'auth0_mgmt_api_token'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:av},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:H},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:G},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:Q},{type:b,tag:c,props:{className:[d,D]},children:[{type:a,value:"\u002F\u002F ... remaining loginByAuth0Api command"}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:p}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:j}]},{type:a,value:g}]}]}]}]},dir:"\u002Fguides\u002Ftesting-strategies",path:"\u002Fguides\u002Ftesting-strategies\u002Fauth0-authentication",extension:".md",createdAt:dw,updatedAt:dw},sidebarItems:[{title:"Overview",slug:"overview",children:[{title:"Why Cypress?",slug:"why-cypress"},{title:"Choosing a Testing Type",slug:"choosing-testing-type"},{title:"Key Differences",slug:"key-differences"}]},{title:"Getting Started",slug:"getting-started",children:[{title:"Installing Cypress",slug:"installing-cypress"},{title:"End-to-End Testing"},{title:dx,slug:"writing-your-first-end-to-end-test"},{title:"Testing Your App",slug:"testing-your-app"},{title:"Component Testing"},{title:"Framework Configuration",slug:"component-framework-configuration"},{title:dx,slug:"writing-your-first-component-test"},{title:"Getting Components to Work",slug:"getting-components-to-work"},{title:"Rendering Components Correctly",slug:"rendering-components-correctly"},{title:"Creating a cy.mount Command",slug:"creating-a-cy-mount-command"}]},{title:"Core Concepts",slug:"core-concepts",children:[{title:"Introduction to Cypress",slug:"introduction-to-cypress"},{title:"Writing and Organizing Tests",slug:"writing-and-organizing-tests"},{title:"Retry-ability",slug:"retry-ability"},{title:"Interacting with Elements",slug:"interacting-with-elements"},{title:"Variables and Aliases",slug:"variables-and-aliases"},{title:"Conditional Testing",slug:"conditional-testing"},{title:"Cypress App",slug:"cypress-app"},{title:"Cypress Studio",slug:"cypress-studio"}]},{title:"Dashboard",slug:"dashboard",children:[{title:dy,slug:dz},{title:"Projects",slug:"projects"},{title:"Runs",slug:"runs"},{title:"Organizations",slug:"organizations"},{title:"Users",slug:"users"},{title:"Bitbucket Integration",slug:"bitbucket-integration"},{title:"GitHub Integration",slug:"github-integration"},{title:"GitLab Integration",slug:"gitlab-integration"},{title:"Jira Integration",slug:"jira-integration"},{title:"Slack Integration",slug:"slack-integration"},{title:"Analytics",slug:"analytics"},{title:"Flaky Test Management",slug:"flaky-test-management"},{title:"Smart Orchestration",slug:"smart-orchestration"}]},{title:"Guides",slug:"guides",children:[{title:"Command Line",slug:"command-line"},{title:"Module API",slug:"module-api"},{title:"Debugging",slug:"debugging"},{title:"Network Requests",slug:"network-requests"},{title:"Test Retries",slug:"test-retries"},{title:"Parallelization",slug:"parallelization"},{title:"Environment Variables",slug:"environment-variables"},{title:"Stubs, Spies, and Clocks",slug:"stubs-spies-and-clocks"},{title:"Screenshots and Videos",slug:"screenshots-and-videos"},{title:"Launching Browsers",slug:"launching-browsers"},{title:"Cross Browser Testing",slug:"cross-browser-testing"},{title:"Web Security",slug:"web-security"}]},{title:"Testing Strategies",slug:"testing-strategies",children:[{title:bJ,slug:bI},{title:"Amazon Cognito Authentication",slug:"amazon-cognito-authentication"},{title:"Okta Authentication",slug:"okta-authentication"},{title:"Google Authentication",slug:"google-authentication"},{title:"Working with GraphQL",slug:"working-with-graphql"}]},{title:"Continuous Integration",slug:"continuous-integration",children:[{title:dy,slug:dz},{title:"CI Provider Examples",slug:"ci-provider-examples"},{title:"CircleCI",slug:"circleci"},{title:"GitHub Actions",slug:"github-actions"},{title:"GitLab CI",slug:"gitlab-ci"},{title:"Bitbucket Pipelines",slug:"bitbucket-pipelines"},{title:"AWS CodeBuild",slug:"aws-codebuild"}]},{title:"Migrating to Cypress",slug:"migrating-to-cypress",children:[{title:"Protractor",slug:"protractor"}]},{title:"Tooling",slug:"tooling",children:[{title:"IDE Integration",slug:"IDE-integration"},{title:"Plugins",slug:"plugins-guide"},{title:"Reporters",slug:"reporters"},{title:"TypeScript",slug:"typescript-support"},{title:"Visual Testing",slug:"visual-testing"},{title:"Code Coverage",slug:"code-coverage"}]},{title:"References",slug:"references",children:[{title:"Assertions",slug:"assertions"},{title:"Configuration",slug:"configuration"},{title:"Legacy Configuration",slug:"legacy-configuration"},{title:"Client Certificates",slug:"client-certificates"},{title:"Proxy Configuration",slug:"proxy-configuration"},{title:"Best Practices",slug:"best-practices"},{title:"Error Messages",slug:"error-messages"},{title:"Bundled Tools",slug:"bundled-tools"},{title:"Trade-offs",slug:"trade-offs"},{title:"Troubleshooting",slug:"troubleshooting"},{title:"Changelog",slug:"changelog"},{title:"Migration Guide",slug:"migration-guide"},{title:"Roadmap",slug:"roadmap"},{title:"Experiments",slug:"experiments"}]}],metaDescription:"What you'll learn Programmatically authenticate with Auth0 via a custom Cypress command Adapting your Auth0 application for programmatic authentication",path:"testing-strategies\u002Fauth0-authentication",banner:dA}],fetch:[],mutations:dA}}("text","element","span","token","punctuation"," ","\n",".","property-access",")","operator","(",",","function","string","}","keyword","{","a","method","nofollow","noopener","noreferrer","_blank","env","code","p",":","=","comment","constant","\n\n","\n    ","\n      "," process",";","const","\n  ","maybe-class-name","tag","div","module","\n\n  ","li","nuxt-content-highlight","pre","line-numbers","Cypress","https:\u002F\u002Fauth0.com","Auth0","arrow","=\u003E","interpolation-punctuation","control-flow","true","icon","language-jsx","template-punctuation","`","attr-name","script","language-javascript","script-punctuation","alert","class-name","\u003E",-1,"icon-link","process","\u002F\u002F ...","plain-text","strong","import","from","\n  config","\n        ","dom","variable",2,"h2","alert-header","REACT_APP_AUTH0_DOMAIN","parameter","interpolation","${","imports","[","]","useEffect","AppAuth0"," user"," token ","matches","\u003C","REACT_APP_AUTH0_AUDIENCE","template-string","window","https:\u002F\u002Fgithub.com\u002Fcypress-io\u002Fcypress-realworld-app","Cypress Real World App","||","info","require","config","REACT_APP_AUTH0_SCOPE","REACT_APP_AUTH0_CLIENTID","function-variable","loginByAuth0Api","\n    cy","https:\u002F\u002F","body","\n          ","\u002F\u002F initial imports ...","user","send","\n      authState","onRedirectCallback","\u003C\u002F","root","ul",".env","code-block","\u002F\u002F Populate process.env with values from .env file","'dotenv'","AUTH0_USERNAME","AUTH0_PASSWORD","AUTH0_CLIENT_SECRET","export","return","username","https:\u002F\u002Fgithub.com\u002Fauth0\u002Fauth0-react","auth0-react SDK","if","useAuth0","withAuthenticationRequired","async","waitForToken","await","getAccessTokenSilently"," getAccessTokenSilently","&amp;&amp;","!","\"AUTH0\"","auth0-authentication","Auth0 Authentication","What-you-ll-learn"," What you'll learn","Auth0-Application-Setup","Auth0 Application Setup","Setting-Auth0-app-credentials-in-Cypress","Setting Auth0 app credentials in Cypress","Custom-Command-for-Auth0-Authentication","Custom Command for Auth0 Authentication","Adapting-an-Auth0-App-for-Testing","Adapting an Auth0 App for Testing","Adapting-the-back-end",3,"Adapting the back end","Adapting-the-front-end","Adapting the front end","Auth0-Rate-Limiting-Logins","Auth0 Rate Limiting Logins","success","warning","https:\u002F\u002Fmanage.auth0.com\u002Fdashboard","Auth0 Dashboard","ol","https:\u002F\u002Fauth0.com\u002Fdocs\u002Fdashboard\u002Freference\u002Fsettings-application","Application Settings","","language-js"," defineConfig ","'cypress'","\n\nmodule","exports","defineConfig","\n  env","\n    auth0_username","\n    auth0_password","\n    auth0_domain","\n    auth0_audience","\n    auth0_scope","\n    auth0_client_id","\n    auth0_client_secret","default","nuxt-link","https:\u002F\u002Fauth0.com\u002Fdocs\u002Fprotocols\u002Fprotocol-oauth2#token-endpoint","\u002Foauth\u002Ftoken endpoint","auth0Cypress","id_token","Commands","add","'loginByAuth0Api'"," string"," password","request","'auth0_domain'","then","localStorage","known-class-name","JSON","The\n","\nis in the\n","Note","https:\u002F\u002Fgithub.com\u002Fauth0\u002Fexpress-jwt","express-jwt","h3","\u002F\u002F backend\u002Fhelpers.ts","jwt","boolean"," checkJwt ","REACT_APP_AUTH0",").","\u002F\u002F src\u002Fcontainers\u002FAppAuth0.tsx"," withAuthenticationRequired"," useAuth0 "," isAuthenticated"," getAccessTokenSilently ","\n      authService"," isLoggedIn ","\n    isAuthenticated ","authState","className","classes","https:\u002F\u002Fgithub.com\u002Fcypress-io\u002Fcypress-realworld-app\u002Fblob\u002Fdevelop\u002Fsrc\u002Fcontainers\u002FAppAuth0.tsx","AppAuth0.tsx component","location","Auth0Provider","Router","history","ThemeProvider","theme","else","\n        authService"," auth0","https:\u002F\u002Fauth0.com\u002Fdocs\u002Fapi\u002Fmanagement\u002Fv2","Auth0 Management API","AUTH0_MGMT_API_TOKEN","ip","2021-12-03T18:53:02.874Z","Writing Your First Test","Introduction","introduction",void 0)));</pre></body></html>