[{"data":1,"prerenderedAt":912},["ShallowReactive",2],{"navigation_docs_hr":3,"-hr-oauth-sign-in-with-sporty":312,"-hr-oauth-sign-in-with-sporty-surround":907},[4,17,210,237,272],{"title":5,"path":6,"stem":7,"children":8,"icon":11},"Prvi koraci","\u002Fhr\u002Fgetting-started","hr\u002F0.getting-started\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Obilazak administracije","sporty-toggle-large-on",{"title":13,"path":14,"stem":15,"icon":16},"Postavljanje u prvom tjednu","\u002Fhr\u002Fgetting-started\u002Ffirst-week-setup","hr\u002F0.getting-started\u002F2.first-week-setup","sporty-calendar-check",{"title":18,"path":19,"stem":20,"children":21,"page":209},"Interface","\u002Fhr\u002Finterface","hr\u002F1.interface",[22,65,72,79,90,97,105,112,119,126,147,154,174,185,203],{"title":23,"path":24,"stem":25,"children":26,"icon":28},"Tereni","\u002Fhr\u002Finterface\u002Fcourts","hr\u002F1.interface\u002F01.courts\u002F1.index",[27,29],{"title":23,"path":24,"stem":25,"icon":28},"sporty-court-sport",{"title":30,"path":31,"stem":32,"children":33,"icon":11},"Kontrola pristupa i rasvjeta","\u002Fhr\u002Finterface\u002Fcourts\u002Fintegrations","hr\u002F1.interface\u002F01.courts\u002F5.integrations\u002F1.index",[34,35,40,45],{"title":30,"path":31,"stem":32,"icon":11},{"title":36,"path":37,"stem":38,"icon":39},"Weblock","\u002Fhr\u002Finterface\u002Fcourts\u002Fintegrations\u002Fweblock","hr\u002F1.interface\u002F01.courts\u002F5.integrations\u002F2.weblock","sporty-door-open",{"title":41,"path":42,"stem":43,"icon":44},"Shelly","\u002Fhr\u002Finterface\u002Fcourts\u002Fintegrations\u002Fshelly","hr\u002F1.interface\u002F01.courts\u002F5.integrations\u002F3.shelly","sporty-bolt",{"title":46,"path":47,"stem":48,"children":49,"icon":39},"UniFi Access","\u002Fhr\u002Finterface\u002Fcourts\u002Fintegrations\u002Funifi-access","hr\u002F1.interface\u002F01.courts\u002F5.integrations\u002F4.unifi-access\u002F1.index",[50,52,56,61],{"title":51,"path":47,"stem":48,"icon":39},"Pregled",{"title":53,"path":54,"stem":55,"icon":11},"Povežite VPN","\u002Fhr\u002Finterface\u002Fcourts\u002Fintegrations\u002Funifi-access\u002Fvpn","hr\u002F1.interface\u002F01.courts\u002F5.integrations\u002F4.unifi-access\u002F2.vpn",{"title":57,"path":58,"stem":59,"icon":60},"Izradite API token","\u002Fhr\u002Finterface\u002Fcourts\u002Fintegrations\u002Funifi-access\u002Fapi-token","hr\u002F1.interface\u002F01.courts\u002F5.integrations\u002F4.unifi-access\u002F3.api-token","sporty-gear",{"title":62,"path":63,"stem":64,"icon":28},"Postavite integraciju u Club Adminu","\u002Fhr\u002Finterface\u002Fcourts\u002Fintegrations\u002Funifi-access\u002Fclub-admin","hr\u002F1.interface\u002F01.courts\u002F5.integrations\u002F4.unifi-access\u002F4.club-admin",{"title":66,"path":67,"stem":68,"children":69,"icon":71},"Članovi","\u002Fhr\u002Finterface\u002Fmembers","hr\u002F1.interface\u002F02.members\u002F1.index",[70],{"title":66,"path":67,"stem":68,"icon":71},"sporty-user-group",{"title":73,"path":74,"stem":75,"children":76,"icon":78},"Članstva","\u002Fhr\u002Finterface\u002Fmemberships","hr\u002F1.interface\u002F03.memberships\u002F1.index",[77],{"title":73,"path":74,"stem":75,"icon":78},"sporty-id-card",{"title":80,"path":81,"stem":82,"children":83,"icon":85},"Lige","\u002Fhr\u002Finterface\u002Fleagues","hr\u002F1.interface\u002F04.leagues\u002F1.index",[84,86],{"title":80,"path":81,"stem":82,"icon":85},"sporty-ranking-star",{"title":87,"path":88,"stem":89,"icon":16},"Planirana natjecanja","\u002Fhr\u002Finterface\u002Fleagues\u002Fplanned-competitions","hr\u002F1.interface\u002F04.leagues\u002F2.planned-competitions",{"title":91,"path":92,"stem":93,"children":94,"icon":96},"Turniri","\u002Fhr\u002Finterface\u002Ftournaments","hr\u002F1.interface\u002F05.tournaments\u002F1.index",[95],{"title":91,"path":92,"stem":93,"icon":96},"sporty-trophy",{"title":98,"path":99,"stem":100,"children":101,"icon":104},"Plaćanja i pretplate","\u002Fhr\u002Finterface\u002Fpayments","hr\u002F1.interface\u002F06.payments\u002F1.index",[102],{"title":103,"path":99,"stem":100,"icon":104},"Plaćanja","sporty-credit-card",{"title":106,"path":107,"stem":108,"children":109,"icon":111},"Dućan","\u002Fhr\u002Finterface\u002Fshop","hr\u002F1.interface\u002F07.shop\u002F1.index",[110],{"title":106,"path":107,"stem":108,"icon":111},"sporty-bag-shopping",{"title":113,"path":114,"stem":115,"children":116,"icon":118},"Škole i treneri","\u002Fhr\u002Finterface\u002Fschools","hr\u002F1.interface\u002F08.schools\u002F1.index",[117],{"title":113,"path":114,"stem":115,"icon":118},"sporty-graduation-cap",{"title":120,"path":121,"stem":122,"children":123,"icon":125},"E-poruke","\u002Fhr\u002Finterface\u002Femails","hr\u002F1.interface\u002F09.emails\u002F1.index",[124],{"title":120,"path":121,"stem":122,"icon":125},"sporty-envelope",{"title":127,"path":128,"stem":129,"children":130,"icon":132},"Video i kamere","\u002Fhr\u002Finterface\u002Fvideo","hr\u002F1.interface\u002F10.video\u002F1.index",[131,133,137,142],{"title":127,"path":128,"stem":129,"icon":132},"sporty-camera-cctv",{"title":134,"path":135,"stem":136,"icon":132},"Dahua kamere","\u002Fhr\u002Finterface\u002Fvideo\u002Fdahua","hr\u002F1.interface\u002F10.video\u002F2.dahua",{"title":138,"path":139,"stem":140,"icon":141},"Ostale RTMP kamere","\u002Fhr\u002Finterface\u002Fvideo\u002Frtmp","hr\u002F1.interface\u002F10.video\u002F3.rtmp","sporty-video",{"title":143,"path":144,"stem":145,"icon":146},"Analitika meča","\u002Fhr\u002Finterface\u002Fvideo\u002Fanalytics","hr\u002F1.interface\u002F10.video\u002F4.analytics","sporty-chart-simple",{"title":148,"path":149,"stem":150,"children":151,"icon":153},"Izvješća","\u002Fhr\u002Finterface\u002Freports","hr\u002F1.interface\u002F11.reports\u002F1.index",[152],{"title":148,"path":149,"stem":150,"icon":153},"sporty-chart-mixed",{"title":155,"path":156,"stem":157,"children":158,"icon":60},"Postavke","\u002Fhr\u002Finterface\u002Fsettings","hr\u002F1.interface\u002F12.settings\u002F1.index",[159,161,165,169],{"title":160,"path":156,"stem":157,"icon":60},"Postavke kluba",{"title":162,"path":163,"stem":164,"icon":16},"Pravila rezervacija i cjenik","\u002Fhr\u002Finterface\u002Fsettings\u002Fbooking-rules","hr\u002F1.interface\u002F12.settings\u002F2.booking-rules",{"title":166,"path":167,"stem":168,"icon":78},"Registracija i pravne stranice","\u002Fhr\u002Finterface\u002Fsettings\u002Fsignup-and-legal","hr\u002F1.interface\u002F12.settings\u002F3.signup-and-legal",{"title":170,"path":171,"stem":172,"icon":173},"Administratori i uloge","\u002Fhr\u002Finterface\u002Fsettings\u002Fadministrators-and-roles","hr\u002F1.interface\u002F12.settings\u002F4.administrators-and-roles","sporty-user",{"title":175,"path":176,"stem":177,"children":178,"icon":180},"Objave na društvenim mrežama","\u002Fhr\u002Finterface\u002Fsocial","hr\u002F1.interface\u002F13.social\u002F1.index",[179,181],{"title":175,"path":176,"stem":177,"icon":180},"sporty-newspaper",{"title":182,"path":183,"stem":184,"icon":11},"Povezivanje kanala","\u002Fhr\u002Finterface\u002Fsocial\u002Fchannels","hr\u002F1.interface\u002F13.social\u002F2.channels",{"title":186,"path":187,"stem":188,"children":189,"icon":28},"Događaji s numeriranim mjestima","\u002Fhr\u002Finterface\u002Fseated-events","hr\u002F1.interface\u002F14.seated-events\u002F1.index",[190,191,195,199],{"title":186,"path":187,"stem":188,"icon":28},{"title":192,"path":193,"stem":194,"icon":28},"Planovi sjedenja","\u002Fhr\u002Finterface\u002Fseated-events\u002Fseating-plans","hr\u002F1.interface\u002F14.seated-events\u002F2.seating-plans",{"title":196,"path":197,"stem":198,"icon":16},"Prodaja mjesta","\u002Fhr\u002Finterface\u002Fseated-events\u002Fselling-seats","hr\u002F1.interface\u002F14.seated-events\u002F3.selling-seats",{"title":200,"path":201,"stem":202,"icon":39},"U prodaji i na ulazu","\u002Fhr\u002Finterface\u002Fseated-events\u002Fon-sale","hr\u002F1.interface\u002F14.seated-events\u002F4.on-sale",{"title":204,"path":205,"stem":206,"children":207,"icon":16},"Sezonske ulaznice","\u002Fhr\u002Finterface\u002Fseason-tickets","hr\u002F1.interface\u002F15.season-tickets\u002F1.index",[208],{"title":204,"path":205,"stem":206,"icon":16},false,{"title":211,"path":212,"stem":213,"children":214,"icon":217},"Web stranica","\u002Fhr\u002Fwebsite","hr\u002F2.website\u002F1.index",[215,218,223,227,232],{"title":216,"path":212,"stem":213,"icon":217},"Izrada web stranice","sporty-browser",{"title":219,"path":220,"stem":221,"icon":222},"Stranice, hero i podnožje","\u002Fhr\u002Fwebsite\u002Fpages","hr\u002F2.website\u002F2.pages","sporty-file-lines",{"title":224,"path":225,"stem":226,"icon":180},"Novosti i događaji","\u002Fhr\u002Fwebsite\u002Fnews-and-events","hr\u002F2.website\u002F3.news-and-events",{"title":228,"path":229,"stem":230,"icon":231},"Treneri i galerija","\u002Fhr\u002Fwebsite\u002Fcoaches-and-gallery","hr\u002F2.website\u002F4.coaches-and-gallery","sporty-images",{"title":233,"path":234,"stem":235,"icon":236},"FAQ i sponzori","\u002Fhr\u002Fwebsite\u002Ffaq-and-sponsors","hr\u002F2.website\u002F5.faq-and-sponsors","sporty-circle-question",{"title":238,"path":239,"stem":240,"children":241,"icon":173},"Za članove","\u002Fhr\u002Fmembers","hr\u002F3.members\u002F1.index",[242,244,248,252,256,260,264,268],{"title":243,"path":239,"stem":240,"icon":173},"Korištenje aplikacije za članove",{"title":245,"path":246,"stem":247,"icon":16},"Rezervacija terena","\u002Fhr\u002Fmembers\u002Fbooking","hr\u002F3.members\u002F2.booking",{"title":249,"path":250,"stem":251,"icon":104},"Članstva i plaćanja","\u002Fhr\u002Fmembers\u002Fpayments","hr\u002F3.members\u002F3.payments",{"title":253,"path":254,"stem":255,"icon":85},"Kako funkcioniraju natjecanja","\u002Fhr\u002Fmembers\u002Fhow-competitions-work","hr\u002F3.members\u002F4.how-competitions-work",{"title":257,"path":258,"stem":259,"icon":96},"Lige, turniri i rezultati","\u002Fhr\u002Fmembers\u002Fcompetitions","hr\u002F3.members\u002F5.competitions",{"title":261,"path":262,"stem":263,"icon":71},"Obitelj i djeca","\u002Fhr\u002Fmembers\u002Ffamily","hr\u002F3.members\u002F6.family",{"title":265,"path":266,"stem":267,"icon":78},"Vaš račun","\u002Fhr\u002Fmembers\u002Faccount","hr\u002F3.members\u002F7.account",{"title":269,"path":270,"stem":271,"icon":236},"Pomoć","\u002Fhr\u002Fmembers\u002Fhelp","hr\u002F3.members\u002F8.help",{"title":273,"path":274,"stem":275,"children":276,"icon":278},"OAuth i prijava putem Sportyja","\u002Fhr\u002Foauth","hr\u002F4.oauth\u002F1.index",[277,279,283,287,291,295,299,303,307],{"title":273,"path":274,"stem":275,"icon":278},"sporty-brackets-curly",{"title":280,"path":281,"stem":282,"icon":278},"Registracija aplikacije","\u002Fhr\u002Foauth\u002Fclients","hr\u002F4.oauth\u002F2.clients",{"title":284,"path":285,"stem":286,"icon":278},"Tok authorization code","\u002Fhr\u002Foauth\u002Fauthorization-code","hr\u002F4.oauth\u002F3.authorization-code",{"title":288,"path":289,"stem":290,"icon":278},"Opsezi","\u002Fhr\u002Foauth\u002Fscopes","hr\u002F4.oauth\u002F4.scopes",{"title":292,"path":293,"stem":294,"icon":278},"Prijava putem Sportyja","\u002Fhr\u002Foauth\u002Fsign-in-with-sporty","hr\u002F4.oauth\u002F5.sign-in-with-sporty",{"title":296,"path":297,"stem":298,"icon":278},"Partnerski API","\u002Fhr\u002Foauth\u002Fpartner-api","hr\u002F4.oauth\u002F6.partner-api",{"title":300,"path":301,"stem":302,"icon":278},"Sinkronizacija rezervacija","\u002Fhr\u002Foauth\u002Fbooking-sync","hr\u002F4.oauth\u002F7.booking-sync",{"title":304,"path":305,"stem":306,"icon":278},"MCP i AI klijenti","\u002Fhr\u002Foauth\u002Fmcp-and-ai-clients","hr\u002F4.oauth\u002F8.mcp-and-ai-clients",{"title":308,"path":309,"stem":310,"icon":311},"Kupnja putem agenta","\u002Fhr\u002Foauth\u002Fagent-checkout","hr\u002F4.oauth\u002F9.agent-checkout","sporty-cart-shopping",{"id":313,"title":292,"body":314,"description":898,"extension":899,"links":900,"meta":901,"navigation":902,"path":293,"seo":903,"stem":294,"__hash__":906},"docs_hr\u002Fhr\u002F4.oauth\u002F5.sign-in-with-sporty.md",{"type":315,"value":316,"toc":892},"minimark",[317,331,338,342,348,672,777,781,799,815,821,825,828,860,865,869,872,885,888],[318,319,320,321,325,326,330],"p",{},"Ako vam treba samo znati tko je netko, trebate OpenID Connect, a to je\n",[322,323,324],"a",{"href":285},"tok authorization code"," s ",[327,328,329],"code",{},"openid"," u opsegu.",[318,332,333,334,337],{},"Usmjerite bilo koju OIDC biblioteku na ",[327,335,336],{},"https:\u002F\u002Fapi.sporty.plus\u002F.well-known\u002Fopenid-configuration","\ni ona će se sama konfigurirati. Provjeru je moguće napisati i ručno, ali to se rijetko isplati.",[339,340,341],"h2",{"id":341},"id_token",[318,343,344,345,347],{},"Vraća se uz pristupni token kad je odobren ",[327,346,329],{},". To je RS256 JWT:",[349,350,355],"pre",{"className":351,"code":352,"language":353,"meta":354,"style":354},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"iss\": \"https:\u002F\u002Fapi.sporty.plus\",\n  \"sub\": \"9f1c2e40-...\",\n  \"aud\": \"your-client-id\",\n  \"iat\": 1789304059,\n  \"nbf\": 1789304059,\n  \"exp\": 1789307659,\n  \"auth_time\": 1789304050,\n  \"nonce\": \"what-you-sent\",\n  \"at_hash\": \"xQ7f...\",\n  \"name\": \"Ada Lovelace\",\n  \"given_name\": \"Ada\",\n  \"family_name\": \"Lovelace\",\n  \"locale\": \"hr\",\n  \"email\": \"ada@example.com\",\n  \"email_verified\": true\n}\n","json","",[327,356,357,366,394,415,436,454,470,487,504,525,546,567,588,609,630,651,666],{"__ignoreMap":354},[358,359,362],"span",{"class":360,"line":361},"line",1,[358,363,365],{"class":364},"sMK4o","{\n",[358,367,369,372,376,379,382,385,389,391],{"class":360,"line":368},2,[358,370,371],{"class":364},"  \"",[358,373,375],{"class":374},"spNyl","iss",[358,377,378],{"class":364},"\"",[358,380,381],{"class":364},":",[358,383,384],{"class":364}," \"",[358,386,388],{"class":387},"sfazB","https:\u002F\u002Fapi.sporty.plus",[358,390,378],{"class":364},[358,392,393],{"class":364},",\n",[358,395,397,399,402,404,406,408,411,413],{"class":360,"line":396},3,[358,398,371],{"class":364},[358,400,401],{"class":374},"sub",[358,403,378],{"class":364},[358,405,381],{"class":364},[358,407,384],{"class":364},[358,409,410],{"class":387},"9f1c2e40-...",[358,412,378],{"class":364},[358,414,393],{"class":364},[358,416,418,420,423,425,427,429,432,434],{"class":360,"line":417},4,[358,419,371],{"class":364},[358,421,422],{"class":374},"aud",[358,424,378],{"class":364},[358,426,381],{"class":364},[358,428,384],{"class":364},[358,430,431],{"class":387},"your-client-id",[358,433,378],{"class":364},[358,435,393],{"class":364},[358,437,439,441,444,446,448,452],{"class":360,"line":438},5,[358,440,371],{"class":364},[358,442,443],{"class":374},"iat",[358,445,378],{"class":364},[358,447,381],{"class":364},[358,449,451],{"class":450},"sbssI"," 1789304059",[358,453,393],{"class":364},[358,455,457,459,462,464,466,468],{"class":360,"line":456},6,[358,458,371],{"class":364},[358,460,461],{"class":374},"nbf",[358,463,378],{"class":364},[358,465,381],{"class":364},[358,467,451],{"class":450},[358,469,393],{"class":364},[358,471,473,475,478,480,482,485],{"class":360,"line":472},7,[358,474,371],{"class":364},[358,476,477],{"class":374},"exp",[358,479,378],{"class":364},[358,481,381],{"class":364},[358,483,484],{"class":450}," 1789307659",[358,486,393],{"class":364},[358,488,490,492,495,497,499,502],{"class":360,"line":489},8,[358,491,371],{"class":364},[358,493,494],{"class":374},"auth_time",[358,496,378],{"class":364},[358,498,381],{"class":364},[358,500,501],{"class":450}," 1789304050",[358,503,393],{"class":364},[358,505,507,509,512,514,516,518,521,523],{"class":360,"line":506},9,[358,508,371],{"class":364},[358,510,511],{"class":374},"nonce",[358,513,378],{"class":364},[358,515,381],{"class":364},[358,517,384],{"class":364},[358,519,520],{"class":387},"what-you-sent",[358,522,378],{"class":364},[358,524,393],{"class":364},[358,526,528,530,533,535,537,539,542,544],{"class":360,"line":527},10,[358,529,371],{"class":364},[358,531,532],{"class":374},"at_hash",[358,534,378],{"class":364},[358,536,381],{"class":364},[358,538,384],{"class":364},[358,540,541],{"class":387},"xQ7f...",[358,543,378],{"class":364},[358,545,393],{"class":364},[358,547,549,551,554,556,558,560,563,565],{"class":360,"line":548},11,[358,550,371],{"class":364},[358,552,553],{"class":374},"name",[358,555,378],{"class":364},[358,557,381],{"class":364},[358,559,384],{"class":364},[358,561,562],{"class":387},"Ada Lovelace",[358,564,378],{"class":364},[358,566,393],{"class":364},[358,568,570,572,575,577,579,581,584,586],{"class":360,"line":569},12,[358,571,371],{"class":364},[358,573,574],{"class":374},"given_name",[358,576,378],{"class":364},[358,578,381],{"class":364},[358,580,384],{"class":364},[358,582,583],{"class":387},"Ada",[358,585,378],{"class":364},[358,587,393],{"class":364},[358,589,591,593,596,598,600,602,605,607],{"class":360,"line":590},13,[358,592,371],{"class":364},[358,594,595],{"class":374},"family_name",[358,597,378],{"class":364},[358,599,381],{"class":364},[358,601,384],{"class":364},[358,603,604],{"class":387},"Lovelace",[358,606,378],{"class":364},[358,608,393],{"class":364},[358,610,612,614,617,619,621,623,626,628],{"class":360,"line":611},14,[358,613,371],{"class":364},[358,615,616],{"class":374},"locale",[358,618,378],{"class":364},[358,620,381],{"class":364},[358,622,384],{"class":364},[358,624,625],{"class":387},"hr",[358,627,378],{"class":364},[358,629,393],{"class":364},[358,631,633,635,638,640,642,644,647,649],{"class":360,"line":632},15,[358,634,371],{"class":364},[358,636,637],{"class":374},"email",[358,639,378],{"class":364},[358,641,381],{"class":364},[358,643,384],{"class":364},[358,645,646],{"class":387},"ada@example.com",[358,648,378],{"class":364},[358,650,393],{"class":364},[358,652,654,656,659,661,663],{"class":360,"line":653},16,[358,655,371],{"class":364},[358,657,658],{"class":374},"email_verified",[358,660,378],{"class":364},[358,662,381],{"class":364},[358,664,665],{"class":364}," true\n",[358,667,669],{"class":360,"line":668},17,[358,670,671],{"class":364},"}\n",[673,674,675,688],"table",{},[676,677,678],"thead",{},[679,680,681,685],"tr",{},[682,683,684],"th",{},"Claim",[682,686,687],{},"Napomene",[689,690,691,706,715,724,733,746,765],"tbody",{},[679,692,693,698],{},[694,695,696],"td",{},[327,697,401],{},[694,699,700,701,705],{},"Trajni id člana. ",[702,703,704],"strong",{},"Upravo njega pohranite."," Nikad se ne mijenja; adresa e-pošte može se promijeniti.",[679,707,708,712],{},[694,709,710],{},[327,711,422],{},[694,713,714],{},"Vaš client id. Provjerite ga.",[679,716,717,721],{},[694,718,719],{},[327,720,511],{},[694,722,723],{},"Prisutan ako ste ga poslali. Provjerite ga.",[679,725,726,730],{},[694,727,728],{},[327,729,532],{},[694,731,732],{},"Veže ovaj id_token uz pristupni token izdan zajedno s njim.",[679,734,735,739],{},[694,736,737],{},[327,738,494],{},[694,740,741,742,745],{},"Kad je član dao odobrenje. Ne nužno i kad se prijavio — to ne bilježimo, pa na tome ne gradite ponašanje za ",[327,743,744],{},"max_age",".",[679,747,748,759],{},[694,749,750,752,753,752,755,752,757],{},[327,751,553],{},", ",[327,754,574],{},[327,756,595],{},[327,758,616],{},[694,760,761,762,745],{},"Samo uz ",[327,763,764],{},"profile",[679,766,767,773],{},[694,768,769,752,771],{},[327,770,637],{},[327,772,658],{},[694,774,761,775,745],{},[327,776,637],{},[339,778,780],{"id":779},"provjera","Provjera",[318,782,783,784,787,788,791,792,752,794,796,797,745],{},"Dohvatite ",[327,785,786],{},"https:\u002F\u002Fapi.sporty.plus\u002Foauth2\u002Fjwks",", odaberite ključ čiji ",[327,789,790],{},"kid"," odgovara zaglavlju\ntokena, provjerite RS256, a zatim provjerite ",[327,793,375],{},[327,795,422],{}," i ",[327,798,477],{},[349,800,804],{"className":801,"code":802,"language":803,"meta":354,"style":354},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl https:\u002F\u002Fapi.sporty.plus\u002Foauth2\u002Fjwks\n","bash",[327,805,806],{"__ignoreMap":354},[358,807,808,812],{"class":360,"line":361},[358,809,811],{"class":810},"sBMFI","curl",[358,813,814],{"class":387}," https:\u002F\u002Fapi.sporty.plus\u002Foauth2\u002Fjwks\n",[318,816,817,818,820],{},"Spremite JWKS u predmemoriju — sat vremena je razumno — ali kad naiđete na ",[327,819,790],{}," koji ne\npoznajete, ponovno ga dohvatite umjesto da javite pogrešku.",[339,822,824],{"id":823},"userinfo","\u002Fuserinfo",[318,826,827],{},"id_token je snimka stanja. Za trenutne vrijednosti:",[349,829,831],{"className":801,"code":830,"language":803,"meta":354,"style":354},"curl https:\u002F\u002Fapi.sporty.plus\u002Foauth2\u002Fuserinfo \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n",[327,832,833,844],{"__ignoreMap":354},[358,834,835,837,840],{"class":360,"line":361},[358,836,811],{"class":810},[358,838,839],{"class":387}," https:\u002F\u002Fapi.sporty.plus\u002Foauth2\u002Fuserinfo",[358,841,843],{"class":842},"sTEyZ"," \\\n",[358,845,846,849,851,854,857],{"class":360,"line":368},[358,847,848],{"class":387},"  -H",[358,850,384],{"class":364},[358,852,853],{"class":387},"Authorization: Bearer ",[358,855,856],{"class":842},"$ACCESS_TOKEN",[358,858,859],{"class":364},"\"\n",[318,861,862,863,745],{},"Isti claimovi, uvjetovani opsegom na isti način, uvijek uključujući ",[327,864,401],{},[339,866,868],{"id":867},"rotacija-ključeva","Rotacija ključeva",[318,870,871],{},"Ključ za potpisivanje mijenjamo rijetko, a kad to učinimo:",[873,874,875,879],"ul",{},[876,877,878],"li",{},"novi javni ključ pojavljuje se u JWKS-u, uz stari, prije nego što se njime išta potpiše;",[876,880,881,884],{},[702,882,883],{},"svaki postojeći pristupni token prestaje raditi."," Ključ za potpisivanje dijele i pristupni\ntokeni, pa ih rotacija poništava. Vaši refresh tokeni to preživljavaju — iskoristite ih i budite\nspremni na ponovnu autorizaciju ako to ne uspije.",[318,886,887],{},"Ako ikad vidite da je token koji izgleda valjano iznenada odbijen, jednom ga osvježite prije nego\nšto zaključite da je nešto pokvareno.",[889,890,891],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":354,"searchDepth":368,"depth":368,"links":893},[894,895,896,897],{"id":341,"depth":368,"text":341},{"id":779,"depth":368,"text":780},{"id":823,"depth":368,"text":824},{"id":867,"depth":368,"text":868},"OpenID Connect — id_token, njegovi claimovi, \u002Fuserinfo i provjera potpisa.","md",null,{},{"icon":278},{"title":904,"description":905},"Prijava putem Sportyja — OpenID Connect","Claimovi u id_tokenu, krajnja točka userinfo, JWKS i rotacija ključeva.","sK1dFBy91CDB3wOZSfH42oJ7WHKeoaKUHrKcBupbKwY",[908,910],{"title":288,"path":289,"stem":290,"description":909,"icon":278,"children":-1},"Svaki opseg, kako se njegovo značenje opisuje članu i koje ga vrste klijenata smiju tražiti.",{"title":296,"path":297,"stem":298,"description":911,"icon":278,"children":-1},"Što pristupni token zapravo može čitati i pisati, a što namjerno ne može.",1792420868990]