[{"data":1,"prerenderedAt":135},["ShallowReactive",2],{"docs:doc:\u002Fen\u002Fdocs\u002Fgetting-started":3,"docs:pages:docs_en":68},{"id":4,"title":5,"alt":6,"body":7,"description":57,"extension":58,"key":59,"meta":60,"navigation":61,"order":62,"path":63,"placeholder":64,"seo":65,"stem":66,"__hash__":67},"docs_en\u002Fen\u002Fdocs\u002Fgetting-started\u002Findex.md","Getting started","\u002Fpl\u002Fdocs\u002Fpierwsze-kroki",{"type":8,"value":9,"toc":53},"minimark",[10,14,38],[11,12,13],"p",{},"Two pages, in this order.",[15,16,17,29],"ul",{},[18,19,20,28],"li",{},[21,22,23],"strong",{},[24,25,27],"a",{"href":26},"\u002Fen\u002Fdocs\u002Fgetting-started\u002Fquickstart","Quickstart"," — create an App, add the\nbrowser SDK to a page, and sign in for the first time. Entirely in\nsandbox.",[18,30,31,37],{},[21,32,33],{},[24,34,36],{"href":35},"\u002Fen\u002Fdocs\u002Fgetting-started\u002Finstallation","Installing an SDK"," — the five\npackages we publish, what each is for, and the options each one takes.",[11,39,40,41,47,48,52],{},"You need an account in the ",[24,42,46],{"href":43,"rel":44},"https:\u002F\u002Fapp.kleora.io",[45],"nofollow","console"," and a\nproject you can run on ",[49,50,51],"code",{},"http:\u002F\u002Flocalhost",". Nothing else: the sandbox environment\nof a new App is ready the moment you create it, with its own sign-in pages, its\nown signing keys and a client waiting for a redirect URI.",{"title":54,"searchDepth":55,"depth":55,"links":56},"",3,[],"From an empty project to a working sign-in, and the packages that get you there.","md","getting-started\u002Findex",{},true,10,"\u002Fen\u002Fdocs\u002Fgetting-started",false,{"title":5,"description":57},"en\u002Fdocs\u002Fgetting-started\u002Findex","uYPx5qwnnZpaGElBOuuDqDElYobHojuGHXNZ5lyxvvQ",[69,70,74,77,83,88,93,98,104,109,114,119,125,130],{"path":63,"title":5,"description":57,"order":62,"key":59},{"path":35,"title":36,"description":71,"order":72,"key":73},"The five packages we publish, what each one is for, and the configuration each one takes.",20,"getting-started\u002Finstallation",{"path":26,"title":27,"description":75,"order":62,"key":76},"Create an App, wire up the browser SDK, and sign in for the first time — entirely in sandbox.","getting-started\u002Fquickstart",{"path":78,"title":79,"description":80,"order":81,"key":82},"\u002Fen\u002Fdocs\u002Fguides\u002Farchitecture","How Kleora is put together","The shape of the hosted service — one address per environment, two API surfaces, and where state lives. And why self-hosting is not something we support today.",30,"guides\u002Farchitecture",{"path":84,"title":85,"description":86,"order":72,"key":87},"\u002Fen\u002Fdocs\u002Fguides\u002Fconcepts","Workspaces, roles and environments","The five words the product is built from, which of them your tokens carry, and how a change to a role reaches a running application.","guides\u002Fconcepts",{"path":89,"title":90,"description":91,"order":72,"key":92},"\u002Fen\u002Fdocs\u002Fguides","Guides","Wiring Kleora into your stack, the words the product uses, and how the hosted service is put together.","guides\u002Findex",{"path":94,"title":95,"description":96,"order":62,"key":97},"\u002Fen\u002Fdocs\u002Fguides\u002Fquickstarts\u002Fbrowser","Plain browser","One client instance, one callback route, and an access token for every request your application makes.","guides\u002Fquickstarts\u002Fbrowser",{"path":99,"title":100,"description":101,"order":102,"key":103},"\u002Fen\u002Fdocs\u002Fguides\u002Fquickstarts\u002Fexpress","Express","Verifying the access token on your own API — middleware, permissions, and the three answers a refusal can have.",40,"guides\u002Fquickstarts\u002Fexpress",{"path":105,"title":106,"description":107,"order":62,"key":108},"\u002Fen\u002Fdocs\u002Fguides\u002Fquickstarts","Framework quickstarts","One page per stack — Next.js, Nuxt, Express and the plain browser — and the two redirect URIs all of them share.","guides\u002Fquickstarts\u002Findex",{"path":110,"title":111,"description":112,"order":72,"key":113},"\u002Fen\u002Fdocs\u002Fguides\u002Fquickstarts\u002Fnextjs","Next.js","The browser SDK in an App Router application — a lazy client, a callback route, and token verification in a route handler.","guides\u002Fquickstarts\u002Fnextjs",{"path":115,"title":116,"description":117,"order":81,"key":118},"\u002Fen\u002Fdocs\u002Fguides\u002Fquickstarts\u002Fnuxt","Nuxt","The Nuxt module — two lines of config, a callback page you do not write, and a route middleware that protects a page from its own meta.","guides\u002Fquickstarts\u002Fnuxt",{"path":120,"title":121,"description":122,"order":123,"key":124},"\u002Fen\u002Fdocs","Kleora documentation","Add hosted sign-in to your application, verify the token on your API, and manage users, workspaces and roles from one console.",0,"index",{"path":126,"title":127,"description":128,"order":62,"key":129},"\u002Fen\u002Fdocs\u002Freference\u002Fcode-highlighting","Code highlighting","One fence per preloaded Shiki grammar — a fixture, not a reference page.","reference\u002Fcode-highlighting",{"path":131,"title":132,"description":133,"order":81,"key":134},"\u002Fen\u002Fdocs\u002Freference","Reference","Reference material for the HTTP APIs and the SDK packages.","reference\u002Findex",1790698197179]