[{"data":1,"prerenderedAt":914},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-oauth-sign-in-with-sporty":312,"-fr-oauth-sign-in-with-sporty-surround":909},[4,17,210,237,272],{"title":5,"path":6,"stem":7,"children":8,"icon":11},"Premiers pas","\u002Ffr\u002Fgetting-started","fr\u002F0.getting-started\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Visite de l'administration","sporty-toggle-large-on",{"title":13,"path":14,"stem":15,"icon":16},"Configuration de la première semaine","\u002Ffr\u002Fgetting-started\u002Ffirst-week-setup","fr\u002F0.getting-started\u002F2.first-week-setup","sporty-calendar-check",{"title":18,"path":19,"stem":20,"children":21,"page":209},"Interface","\u002Ffr\u002Finterface","fr\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},"Courts","\u002Ffr\u002Finterface\u002Fcourts","fr\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},"Contrôle d'accès et éclairage","\u002Ffr\u002Finterface\u002Fcourts\u002Fintegrations","fr\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","\u002Ffr\u002Finterface\u002Fcourts\u002Fintegrations\u002Fweblock","fr\u002F1.interface\u002F01.courts\u002F5.integrations\u002F2.weblock","sporty-door-open",{"title":41,"path":42,"stem":43,"icon":44},"Shelly","\u002Ffr\u002Finterface\u002Fcourts\u002Fintegrations\u002Fshelly","fr\u002F1.interface\u002F01.courts\u002F5.integrations\u002F3.shelly","sporty-bolt",{"title":46,"path":47,"stem":48,"children":49,"icon":39},"UniFi Access","\u002Ffr\u002Finterface\u002Fcourts\u002Fintegrations\u002Funifi-access","fr\u002F1.interface\u002F01.courts\u002F5.integrations\u002F4.unifi-access\u002F1.index",[50,52,56,61],{"title":51,"path":47,"stem":48,"icon":39},"Présentation",{"title":53,"path":54,"stem":55,"icon":11},"Connecter le VPN","\u002Ffr\u002Finterface\u002Fcourts\u002Fintegrations\u002Funifi-access\u002Fvpn","fr\u002F1.interface\u002F01.courts\u002F5.integrations\u002F4.unifi-access\u002F2.vpn",{"title":57,"path":58,"stem":59,"icon":60},"Créer un jeton d'API","\u002Ffr\u002Finterface\u002Fcourts\u002Fintegrations\u002Funifi-access\u002Fapi-token","fr\u002F1.interface\u002F01.courts\u002F5.integrations\u002F4.unifi-access\u002F3.api-token","sporty-gear",{"title":62,"path":63,"stem":64,"icon":28},"Configurer dans Club Admin","\u002Ffr\u002Finterface\u002Fcourts\u002Fintegrations\u002Funifi-access\u002Fclub-admin","fr\u002F1.interface\u002F01.courts\u002F5.integrations\u002F4.unifi-access\u002F4.club-admin",{"title":66,"path":67,"stem":68,"children":69,"icon":71},"Membres","\u002Ffr\u002Finterface\u002Fmembers","fr\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},"Adhésions","\u002Ffr\u002Finterface\u002Fmemberships","fr\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},"Ligues","\u002Ffr\u002Finterface\u002Fleagues","fr\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},"Compétitions planifiées","\u002Ffr\u002Finterface\u002Fleagues\u002Fplanned-competitions","fr\u002F1.interface\u002F04.leagues\u002F2.planned-competitions",{"title":91,"path":92,"stem":93,"children":94,"icon":96},"Tournois","\u002Ffr\u002Finterface\u002Ftournaments","fr\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},"Paiements et abonnements","\u002Ffr\u002Finterface\u002Fpayments","fr\u002F1.interface\u002F06.payments\u002F1.index",[102],{"title":103,"path":99,"stem":100,"icon":104},"Paiements","sporty-credit-card",{"title":106,"path":107,"stem":108,"children":109,"icon":111},"Boutique","\u002Ffr\u002Finterface\u002Fshop","fr\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},"Écoles et entraîneurs","\u002Ffr\u002Finterface\u002Fschools","fr\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-mails","\u002Ffr\u002Finterface\u002Femails","fr\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},"Vidéo et caméras","\u002Ffr\u002Finterface\u002Fvideo","fr\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},"Caméras Dahua","\u002Ffr\u002Finterface\u002Fvideo\u002Fdahua","fr\u002F1.interface\u002F10.video\u002F2.dahua",{"title":138,"path":139,"stem":140,"icon":141},"Autres caméras RTMP","\u002Ffr\u002Finterface\u002Fvideo\u002Frtmp","fr\u002F1.interface\u002F10.video\u002F3.rtmp","sporty-video",{"title":143,"path":144,"stem":145,"icon":146},"Analyse des matchs","\u002Ffr\u002Finterface\u002Fvideo\u002Fanalytics","fr\u002F1.interface\u002F10.video\u002F4.analytics","sporty-chart-simple",{"title":148,"path":149,"stem":150,"children":151,"icon":153},"Rapports","\u002Ffr\u002Finterface\u002Freports","fr\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},"Paramètres","\u002Ffr\u002Finterface\u002Fsettings","fr\u002F1.interface\u002F12.settings\u002F1.index",[159,161,165,169],{"title":160,"path":156,"stem":157,"icon":60},"Paramètres du club",{"title":162,"path":163,"stem":164,"icon":16},"Règles de réservation et liste de prix","\u002Ffr\u002Finterface\u002Fsettings\u002Fbooking-rules","fr\u002F1.interface\u002F12.settings\u002F2.booking-rules",{"title":166,"path":167,"stem":168,"icon":78},"Inscription et pages légales","\u002Ffr\u002Finterface\u002Fsettings\u002Fsignup-and-legal","fr\u002F1.interface\u002F12.settings\u002F3.signup-and-legal",{"title":170,"path":171,"stem":172,"icon":173},"Administrateurs et rôles","\u002Ffr\u002Finterface\u002Fsettings\u002Fadministrators-and-roles","fr\u002F1.interface\u002F12.settings\u002F4.administrators-and-roles","sporty-user",{"title":175,"path":176,"stem":177,"children":178,"icon":180},"Publication sur les réseaux sociaux","\u002Ffr\u002Finterface\u002Fsocial","fr\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},"Connecter des canaux","\u002Ffr\u002Finterface\u002Fsocial\u002Fchannels","fr\u002F1.interface\u002F13.social\u002F2.channels",{"title":186,"path":187,"stem":188,"children":189,"icon":28},"Événements à places numérotées","\u002Ffr\u002Finterface\u002Fseated-events","fr\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},"Plans de salle","\u002Ffr\u002Finterface\u002Fseated-events\u002Fseating-plans","fr\u002F1.interface\u002F14.seated-events\u002F2.seating-plans",{"title":196,"path":197,"stem":198,"icon":16},"Vendre des places","\u002Ffr\u002Finterface\u002Fseated-events\u002Fselling-seats","fr\u002F1.interface\u002F14.seated-events\u002F3.selling-seats",{"title":200,"path":201,"stem":202,"icon":39},"En vente et à l'entrée","\u002Ffr\u002Finterface\u002Fseated-events\u002Fon-sale","fr\u002F1.interface\u002F14.seated-events\u002F4.on-sale",{"title":204,"path":205,"stem":206,"children":207,"icon":16},"Abonnements saisonniers","\u002Ffr\u002Finterface\u002Fseason-tickets","fr\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},"Site web","\u002Ffr\u002Fwebsite","fr\u002F2.website\u002F1.index",[215,218,223,227,232],{"title":216,"path":212,"stem":213,"icon":217},"Créateur de site web","sporty-browser",{"title":219,"path":220,"stem":221,"icon":222},"Pages, hero et pied de page","\u002Ffr\u002Fwebsite\u002Fpages","fr\u002F2.website\u002F2.pages","sporty-file-lines",{"title":224,"path":225,"stem":226,"icon":180},"Actualités et événements","\u002Ffr\u002Fwebsite\u002Fnews-and-events","fr\u002F2.website\u002F3.news-and-events",{"title":228,"path":229,"stem":230,"icon":231},"Entraîneurs et galerie","\u002Ffr\u002Fwebsite\u002Fcoaches-and-gallery","fr\u002F2.website\u002F4.coaches-and-gallery","sporty-images",{"title":233,"path":234,"stem":235,"icon":236},"FAQ et sponsors","\u002Ffr\u002Fwebsite\u002Ffaq-and-sponsors","fr\u002F2.website\u002F5.faq-and-sponsors","sporty-circle-question",{"title":238,"path":239,"stem":240,"children":241,"icon":173},"Pour les membres","\u002Ffr\u002Fmembers","fr\u002F3.members\u002F1.index",[242,244,248,252,256,260,264,268],{"title":243,"path":239,"stem":240,"icon":173},"Utiliser l'application des membres",{"title":245,"path":246,"stem":247,"icon":16},"Réserver un court","\u002Ffr\u002Fmembers\u002Fbooking","fr\u002F3.members\u002F2.booking",{"title":249,"path":250,"stem":251,"icon":104},"Adhésions et paiements","\u002Ffr\u002Fmembers\u002Fpayments","fr\u002F3.members\u002F3.payments",{"title":253,"path":254,"stem":255,"icon":85},"Comment fonctionnent les compétitions","\u002Ffr\u002Fmembers\u002Fhow-competitions-work","fr\u002F3.members\u002F4.how-competitions-work",{"title":257,"path":258,"stem":259,"icon":96},"Ligues, tournois et résultats","\u002Ffr\u002Fmembers\u002Fcompetitions","fr\u002F3.members\u002F5.competitions",{"title":261,"path":262,"stem":263,"icon":71},"Famille et enfants","\u002Ffr\u002Fmembers\u002Ffamily","fr\u002F3.members\u002F6.family",{"title":265,"path":266,"stem":267,"icon":78},"Votre compte","\u002Ffr\u002Fmembers\u002Faccount","fr\u002F3.members\u002F7.account",{"title":269,"path":270,"stem":271,"icon":236},"Obtenir de l'aide","\u002Ffr\u002Fmembers\u002Fhelp","fr\u002F3.members\u002F8.help",{"title":273,"path":274,"stem":275,"children":276,"icon":278},"OAuth et Se connecter avec Sporty","\u002Ffr\u002Foauth","fr\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},"Enregistrer une application","\u002Ffr\u002Foauth\u002Fclients","fr\u002F4.oauth\u002F2.clients",{"title":284,"path":285,"stem":286,"icon":278},"Le flux du code d'autorisation","\u002Ffr\u002Foauth\u002Fauthorization-code","fr\u002F4.oauth\u002F3.authorization-code",{"title":288,"path":289,"stem":290,"icon":278},"Scopes","\u002Ffr\u002Foauth\u002Fscopes","fr\u002F4.oauth\u002F4.scopes",{"title":292,"path":293,"stem":294,"icon":278},"Se connecter avec Sporty","\u002Ffr\u002Foauth\u002Fsign-in-with-sporty","fr\u002F4.oauth\u002F5.sign-in-with-sporty",{"title":296,"path":297,"stem":298,"icon":278},"L'API partenaire","\u002Ffr\u002Foauth\u002Fpartner-api","fr\u002F4.oauth\u002F6.partner-api",{"title":300,"path":301,"stem":302,"icon":278},"Synchroniser les réservations","\u002Ffr\u002Foauth\u002Fbooking-sync","fr\u002F4.oauth\u002F7.booking-sync",{"title":304,"path":305,"stem":306,"icon":278},"MCP et clients IA","\u002Ffr\u002Foauth\u002Fmcp-and-ai-clients","fr\u002F4.oauth\u002F8.mcp-and-ai-clients",{"title":308,"path":309,"stem":310,"icon":311},"Paiement par agent","\u002Ffr\u002Foauth\u002Fagent-checkout","fr\u002F4.oauth\u002F9.agent-checkout","sporty-cart-shopping",{"id":313,"title":292,"body":314,"description":900,"extension":901,"links":902,"meta":903,"navigation":904,"path":293,"seo":905,"stem":294,"__hash__":908},"docs_fr\u002Ffr\u002F4.oauth\u002F5.sign-in-with-sporty.md",{"type":315,"value":316,"toc":894},"minimark",[317,331,338,343,349,673,779,783,801,817,823,827,830,862,867,871,874,887,890],[318,319,320,321,325,326,330],"p",{},"Si vous avez seulement besoin de savoir qui est une personne, il vous faut OpenID Connect,\nc'est-à-dire ",[322,323,324],"a",{"href":285},"le flux du code d'autorisation"," avec ",[327,328,329],"code",{},"openid"," dans\nle scope.",[318,332,333,334,337],{},"Faites pointer n'importe quelle bibliothèque OIDC vers\n",[327,335,336],{},"https:\u002F\u002Fapi.sporty.plus\u002F.well-known\u002Fopenid-configuration"," et elle se configurera toute seule.\nÉcrire la vérification à la main est possible, mais en vaut rarement la peine.",[339,340,342],"h2",{"id":341},"lid_token","L'id_token",[318,344,345,346,348],{},"Renvoyé avec le jeton d'accès lorsque ",[327,347,329],{}," a été accordé. Il s'agit d'un JWT RS256 :",[350,351,356],"pre",{"className":352,"code":353,"language":354,"meta":355,"style":355},"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,357,358,367,395,416,437,455,471,488,505,526,547,568,589,610,631,652,667],{"__ignoreMap":355},[359,360,363],"span",{"class":361,"line":362},"line",1,[359,364,366],{"class":365},"sMK4o","{\n",[359,368,370,373,377,380,383,386,390,392],{"class":361,"line":369},2,[359,371,372],{"class":365},"  \"",[359,374,376],{"class":375},"spNyl","iss",[359,378,379],{"class":365},"\"",[359,381,382],{"class":365},":",[359,384,385],{"class":365}," \"",[359,387,389],{"class":388},"sfazB","https:\u002F\u002Fapi.sporty.plus",[359,391,379],{"class":365},[359,393,394],{"class":365},",\n",[359,396,398,400,403,405,407,409,412,414],{"class":361,"line":397},3,[359,399,372],{"class":365},[359,401,402],{"class":375},"sub",[359,404,379],{"class":365},[359,406,382],{"class":365},[359,408,385],{"class":365},[359,410,411],{"class":388},"9f1c2e40-...",[359,413,379],{"class":365},[359,415,394],{"class":365},[359,417,419,421,424,426,428,430,433,435],{"class":361,"line":418},4,[359,420,372],{"class":365},[359,422,423],{"class":375},"aud",[359,425,379],{"class":365},[359,427,382],{"class":365},[359,429,385],{"class":365},[359,431,432],{"class":388},"your-client-id",[359,434,379],{"class":365},[359,436,394],{"class":365},[359,438,440,442,445,447,449,453],{"class":361,"line":439},5,[359,441,372],{"class":365},[359,443,444],{"class":375},"iat",[359,446,379],{"class":365},[359,448,382],{"class":365},[359,450,452],{"class":451},"sbssI"," 1789304059",[359,454,394],{"class":365},[359,456,458,460,463,465,467,469],{"class":361,"line":457},6,[359,459,372],{"class":365},[359,461,462],{"class":375},"nbf",[359,464,379],{"class":365},[359,466,382],{"class":365},[359,468,452],{"class":451},[359,470,394],{"class":365},[359,472,474,476,479,481,483,486],{"class":361,"line":473},7,[359,475,372],{"class":365},[359,477,478],{"class":375},"exp",[359,480,379],{"class":365},[359,482,382],{"class":365},[359,484,485],{"class":451}," 1789307659",[359,487,394],{"class":365},[359,489,491,493,496,498,500,503],{"class":361,"line":490},8,[359,492,372],{"class":365},[359,494,495],{"class":375},"auth_time",[359,497,379],{"class":365},[359,499,382],{"class":365},[359,501,502],{"class":451}," 1789304050",[359,504,394],{"class":365},[359,506,508,510,513,515,517,519,522,524],{"class":361,"line":507},9,[359,509,372],{"class":365},[359,511,512],{"class":375},"nonce",[359,514,379],{"class":365},[359,516,382],{"class":365},[359,518,385],{"class":365},[359,520,521],{"class":388},"what-you-sent",[359,523,379],{"class":365},[359,525,394],{"class":365},[359,527,529,531,534,536,538,540,543,545],{"class":361,"line":528},10,[359,530,372],{"class":365},[359,532,533],{"class":375},"at_hash",[359,535,379],{"class":365},[359,537,382],{"class":365},[359,539,385],{"class":365},[359,541,542],{"class":388},"xQ7f...",[359,544,379],{"class":365},[359,546,394],{"class":365},[359,548,550,552,555,557,559,561,564,566],{"class":361,"line":549},11,[359,551,372],{"class":365},[359,553,554],{"class":375},"name",[359,556,379],{"class":365},[359,558,382],{"class":365},[359,560,385],{"class":365},[359,562,563],{"class":388},"Ada Lovelace",[359,565,379],{"class":365},[359,567,394],{"class":365},[359,569,571,573,576,578,580,582,585,587],{"class":361,"line":570},12,[359,572,372],{"class":365},[359,574,575],{"class":375},"given_name",[359,577,379],{"class":365},[359,579,382],{"class":365},[359,581,385],{"class":365},[359,583,584],{"class":388},"Ada",[359,586,379],{"class":365},[359,588,394],{"class":365},[359,590,592,594,597,599,601,603,606,608],{"class":361,"line":591},13,[359,593,372],{"class":365},[359,595,596],{"class":375},"family_name",[359,598,379],{"class":365},[359,600,382],{"class":365},[359,602,385],{"class":365},[359,604,605],{"class":388},"Lovelace",[359,607,379],{"class":365},[359,609,394],{"class":365},[359,611,613,615,618,620,622,624,627,629],{"class":361,"line":612},14,[359,614,372],{"class":365},[359,616,617],{"class":375},"locale",[359,619,379],{"class":365},[359,621,382],{"class":365},[359,623,385],{"class":365},[359,625,626],{"class":388},"hr",[359,628,379],{"class":365},[359,630,394],{"class":365},[359,632,634,636,639,641,643,645,648,650],{"class":361,"line":633},15,[359,635,372],{"class":365},[359,637,638],{"class":375},"email",[359,640,379],{"class":365},[359,642,382],{"class":365},[359,644,385],{"class":365},[359,646,647],{"class":388},"ada@example.com",[359,649,379],{"class":365},[359,651,394],{"class":365},[359,653,655,657,660,662,664],{"class":361,"line":654},16,[359,656,372],{"class":365},[359,658,659],{"class":375},"email_verified",[359,661,379],{"class":365},[359,663,382],{"class":365},[359,665,666],{"class":365}," true\n",[359,668,670],{"class":361,"line":669},17,[359,671,672],{"class":365},"}\n",[674,675,676,689],"table",{},[677,678,679],"thead",{},[680,681,682,686],"tr",{},[683,684,685],"th",{},"Claim",[683,687,688],{},"Remarques",[690,691,692,707,716,725,734,747,767],"tbody",{},[680,693,694,699],{},[695,696,697],"td",{},[327,698,402],{},[695,700,701,702,706],{},"L'identifiant permanent du membre. ",[703,704,705],"strong",{},"C'est celui-ci qu'il faut stocker."," Il ne change jamais ; une adresse e-mail, si.",[680,708,709,713],{},[695,710,711],{},[327,712,423],{},[695,714,715],{},"Votre client id. Vérifiez-le.",[680,717,718,722],{},[695,719,720],{},[327,721,512],{},[695,723,724],{},"Présent si vous en avez envoyé un. Vérifiez-le.",[680,726,727,731],{},[695,728,729],{},[327,730,533],{},[695,732,733],{},"Lie cet id_token au jeton d'accès émis avec lui.",[680,735,736,740],{},[695,737,738],{},[327,739,495],{},[695,741,742,743,746],{},"Le moment où le membre a donné son accord. Pas forcément celui où il s'est connecté — nous ne l'enregistrons pas, ne construisez donc pas de comportement ",[327,744,745],{},"max_age"," dessus.",[680,748,749,760],{},[695,750,751,753,754,753,756,753,758],{},[327,752,554],{},", ",[327,755,575],{},[327,757,596],{},[327,759,617],{},[695,761,762,763,766],{},"Uniquement avec ",[327,764,765],{},"profile",".",[680,768,769,775],{},[695,770,771,753,773],{},[327,772,638],{},[327,774,659],{},[695,776,762,777,766],{},[327,778,638],{},[339,780,782],{"id":781},"le-vérifier","Le vérifier",[318,784,785,786,789,790,793,794,753,796,798,799,766],{},"Récupérez ",[327,787,788],{},"https:\u002F\u002Fapi.sporty.plus\u002Foauth2\u002Fjwks",", choisissez la clé dont le ",[327,791,792],{},"kid"," correspond à\nl'en-tête du jeton, vérifiez la signature RS256, puis contrôlez ",[327,795,376],{},[327,797,423],{}," et ",[327,800,478],{},[350,802,806],{"className":803,"code":804,"language":805,"meta":355,"style":355},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl https:\u002F\u002Fapi.sporty.plus\u002Foauth2\u002Fjwks\n","bash",[327,807,808],{"__ignoreMap":355},[359,809,810,814],{"class":361,"line":362},[359,811,813],{"class":812},"sBMFI","curl",[359,815,816],{"class":388}," https:\u002F\u002Fapi.sporty.plus\u002Foauth2\u002Fjwks\n",[318,818,819,820,822],{},"Mettez le JWKS en cache — une heure est raisonnable — mais récupérez-le à nouveau lorsque vous\nrencontrez un ",[327,821,792],{}," inconnu, plutôt que d'échouer.",[339,824,826],{"id":825},"userinfo","\u002Fuserinfo",[318,828,829],{},"Un id_token est un instantané. Pour les valeurs actuelles :",[350,831,833],{"className":803,"code":832,"language":805,"meta":355,"style":355},"curl https:\u002F\u002Fapi.sporty.plus\u002Foauth2\u002Fuserinfo \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n",[327,834,835,846],{"__ignoreMap":355},[359,836,837,839,842],{"class":361,"line":362},[359,838,813],{"class":812},[359,840,841],{"class":388}," https:\u002F\u002Fapi.sporty.plus\u002Foauth2\u002Fuserinfo",[359,843,845],{"class":844},"sTEyZ"," \\\n",[359,847,848,851,853,856,859],{"class":361,"line":369},[359,849,850],{"class":388},"  -H",[359,852,385],{"class":365},[359,854,855],{"class":388},"Authorization: Bearer ",[359,857,858],{"class":844},"$ACCESS_TOKEN",[359,860,861],{"class":365},"\"\n",[318,863,864,865,766],{},"Les mêmes claims, filtrés de la même façon selon le scope, avec toujours ",[327,866,402],{},[339,868,870],{"id":869},"rotation-des-clés","Rotation des clés",[318,872,873],{},"Nous renouvelons rarement la clé de signature, et quand nous le faisons :",[875,876,877,881],"ul",{},[878,879,880],"li",{},"la nouvelle clé publique apparaît dans le JWKS, à côté de l'ancienne, avant que quoi que ce\nsoit ne soit signé avec elle ;",[878,882,883,886],{},[703,884,885],{},"tous les jetons d'accès existants cessent de fonctionner."," La clé de signature est\npartagée avec les jetons d'accès, donc une rotation y met fin. Vos jetons de rafraîchissement\nsurvivent — utilisez-les, et soyez prêt à redemander l'autorisation si cela échoue.",[318,888,889],{},"Si un jeton d'apparence valide est soudain rejeté, rafraîchissez-le une fois avant de supposer\nque quelque chose est cassé.",[891,892,893],"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":355,"searchDepth":369,"depth":369,"links":895},[896,897,898,899],{"id":341,"depth":369,"text":342},{"id":781,"depth":369,"text":782},{"id":825,"depth":369,"text":826},{"id":869,"depth":369,"text":870},"OpenID Connect — l'id_token, ses claims, \u002Fuserinfo et la vérification d'une signature.","md",null,{},{"icon":278},{"title":906,"description":907},"Se connecter avec Sporty — OpenID Connect","Claims de l'id_token, point de terminaison userinfo, JWKS et rotation des clés.","VV2AVtO7EmA1lZ2Sv18gq-JIU2tvAjm69yr7FePIy4w",[910,912],{"title":288,"path":289,"stem":290,"description":911,"icon":278,"children":-1},"Chaque scope, ce que le membre lit à son sujet, et quels types de clients peuvent le demander.",{"title":296,"path":297,"stem":298,"description":913,"icon":278,"children":-1},"Ce qu'un jeton d'accès peut réellement lire et écrire, et ce qu'il ne peut délibérément pas faire.",1792420862289]