[{"data":1,"prerenderedAt":1869},["ShallowReactive",2],{"docs-navigation:de":3,"\u002Fdocs\u002Fde\u002Fsite-owners\u002Fintegrations\u002Fsingle-sign-on":161,"\u002Fdocs\u002Fde\u002Fsite-owners\u002Fintegrations\u002Fsingle-sign-on:surround":1864},[4],{"title":5,"path":6,"stem":7,"children":8,"page":41},"Docs","\u002Fdocs","docs",[9],{"title":10,"path":11,"stem":12,"children":13,"page":41},"De","\u002Fdocs\u002Fde","docs\u002Fde",[14,106],{"title":15,"icon":16,"path":17,"stem":18,"children":19},"Websitebetreiber","i-ph:storefront-duotone","\u002Fdocs\u002Fde\u002Fsite-owners","docs\u002Fde\u002F1.site-owners\u002Findex",[20,23,42,64,86,96],{"title":21,"path":17,"stem":18,"icon":22},"Einführung","i-ph:house-line-duotone",{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":41},"Erste Schritte","i-ph:rocket-launch-duotone","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fgetting-started","docs\u002Fde\u002F1.site-owners\u002F1.getting-started",[29,33,37],{"title":30,"path":31,"stem":32},"Schnellstart","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fgetting-started\u002Fquick-start","docs\u002Fde\u002F1.site-owners\u002F1.getting-started\u002F1.quick-start",{"title":34,"path":35,"stem":36},"Installation","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fgetting-started\u002Finstallation","docs\u002Fde\u002F1.site-owners\u002F1.getting-started\u002F2.installation",{"title":38,"path":39,"stem":40},"Aussehen und Sprache","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fgetting-started\u002Fappearance","docs\u002Fde\u002F1.site-owners\u002F1.getting-started\u002F3.appearance",false,{"title":43,"icon":44,"path":45,"stem":46,"children":47,"page":41},"Moderation","i-ph:shield-check-duotone","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fmoderation","docs\u002Fde\u002F1.site-owners\u002F2.moderation",[48,52,56,60],{"title":49,"path":50,"stem":51},"So funktioniert die Moderation","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fmoderation\u002Fhow-it-works","docs\u002Fde\u002F1.site-owners\u002F2.moderation\u002F1.how-it-works",{"title":53,"path":54,"stem":55},"Kommentare moderieren","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fmoderation\u002Fmoderating-comments","docs\u002Fde\u002F1.site-owners\u002F2.moderation\u002F2.moderating-comments",{"title":57,"path":58,"stem":59},"Regeln und Lebenszyklus","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fmoderation\u002Frules-and-lifecycle","docs\u002Fde\u002F1.site-owners\u002F2.moderation\u002F3.rules-and-lifecycle",{"title":61,"path":62,"stem":63},"Kommentierende sperren","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fmoderation\u002Fbanning-commenters","docs\u002Fde\u002F1.site-owners\u002F2.moderation\u002F4.banning-commenters",{"title":65,"icon":66,"path":67,"stem":68,"children":69,"page":41},"Widgets und Team","i-ph:app-window-duotone","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fwidgets","docs\u002Fde\u002F1.site-owners\u002F3.widgets",[70,74,78,82],{"title":71,"path":72,"stem":73},"Widgets verwalten","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fwidgets\u002Fmanaging-widgets","docs\u002Fde\u002F1.site-owners\u002F3.widgets\u002F1.managing-widgets",{"title":75,"path":76,"stem":77},"Team und Rollen","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fwidgets\u002Fteam-and-roles","docs\u002Fde\u002F1.site-owners\u002F3.widgets\u002F2.team-and-roles",{"title":79,"path":80,"stem":81},"Reaktionen und Emojis","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fwidgets\u002Freactions-and-emoji","docs\u002Fde\u002F1.site-owners\u002F3.widgets\u002F3.reactions-and-emoji",{"title":83,"path":84,"stem":85},"Abzeichen","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fwidgets\u002Fbadges","docs\u002Fde\u002F1.site-owners\u002F3.widgets\u002F4.badges",{"title":87,"icon":88,"path":89,"stem":90,"children":91,"page":41},"Integrationen","i-ph:plugs-connected-duotone","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fintegrations","docs\u002Fde\u002F1.site-owners\u002F4.integrations",[92],{"title":93,"path":94,"stem":95},"Single Sign-On","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fintegrations\u002Fsingle-sign-on","docs\u002Fde\u002F1.site-owners\u002F4.integrations\u002F1.single-sign-on",{"title":97,"icon":98,"path":99,"stem":100,"children":101,"page":41},"Abrechnung","i-ph:crown-duotone","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fbilling","docs\u002Fde\u002F1.site-owners\u002F5.billing",[102],{"title":103,"path":104,"stem":105},"Tarife und Abrechnung","\u002Fdocs\u002Fde\u002Fsite-owners\u002Fbilling\u002Fplans-and-billing","docs\u002Fde\u002F1.site-owners\u002F5.billing\u002F1.plans-and-billing",{"title":107,"icon":108,"path":109,"stem":110,"children":111},"Leser","i-ph:chat-circle-text-duotone","\u002Fdocs\u002Fde\u002Freaders","docs\u002Fde\u002F2.readers\u002Findex",[112,113,125,143],{"title":21,"path":109,"stem":110,"icon":22},{"title":24,"icon":25,"path":114,"stem":115,"children":116,"page":41},"\u002Fdocs\u002Fde\u002Freaders\u002Fgetting-started","docs\u002Fde\u002F2.readers\u002F1.getting-started",[117,121],{"title":118,"path":119,"stem":120},"Anmelden","\u002Fdocs\u002Fde\u002Freaders\u002Fgetting-started\u002Fsigning-in","docs\u002Fde\u002F2.readers\u002F1.getting-started\u002F1.signing-in",{"title":122,"path":123,"stem":124},"Ihr Profil","\u002Fdocs\u002Fde\u002Freaders\u002Fgetting-started\u002Fyour-profile","docs\u002Fde\u002F2.readers\u002F1.getting-started\u002F2.your-profile",{"title":126,"icon":127,"path":128,"stem":129,"children":130,"page":41},"Kommentieren","i-ph:chats-circle-duotone","\u002Fdocs\u002Fde\u002Freaders\u002Fcommenting","docs\u002Fde\u002F2.readers\u002F2.commenting",[131,135,139],{"title":132,"path":133,"stem":134},"Kommentare schreiben","\u002Fdocs\u002Fde\u002Freaders\u002Fcommenting\u002Fwriting-comments","docs\u002Fde\u002F2.readers\u002F2.commenting\u002F1.writing-comments",{"title":136,"path":137,"stem":138},"Lesen und reagieren","\u002Fdocs\u002Fde\u002Freaders\u002Fcommenting\u002Freading-and-reacting","docs\u002Fde\u002F2.readers\u002F2.commenting\u002F2.reading-and-reacting",{"title":140,"path":141,"stem":142},"Warum ein Kommentar wartet oder verschwindet","\u002Fdocs\u002Fde\u002Freaders\u002Fcommenting\u002Fwhen-comments-wait","docs\u002Fde\u002F2.readers\u002F2.commenting\u002F3.when-comments-wait",{"title":144,"icon":145,"path":146,"stem":147,"children":148,"page":41},"Ihr Konto","i-ph:user-circle-duotone","\u002Fdocs\u002Fde\u002Freaders\u002Faccount","docs\u002Fde\u002F2.readers\u002F3.account",[149,153,157],{"title":150,"path":151,"stem":152},"Benachrichtigungen","\u002Fdocs\u002Fde\u002Freaders\u002Faccount\u002Fnotifications","docs\u002Fde\u002F2.readers\u002F3.account\u002F1.notifications",{"title":154,"path":155,"stem":156},"Ihre Kommentare und Likes","\u002Fdocs\u002Fde\u002Freaders\u002Faccount\u002Fyour-activity","docs\u002Fde\u002F2.readers\u002F3.account\u002F2.your-activity",{"title":158,"path":159,"stem":160},"Verknüpfte Websites","\u002Fdocs\u002Fde\u002Freaders\u002Faccount\u002Flinked-sites","docs\u002Fde\u002F2.readers\u002F3.account\u002F3.linked-sites",{"id":162,"title":93,"body":163,"description":1859,"extension":1860,"meta":1861,"navigation":463,"path":94,"seo":1862,"stem":95,"__hash__":1863},"docs_de\u002Fdocs\u002Fde\u002F1.site-owners\u002F4.integrations\u002F1.single-sign-on.md",{"type":164,"value":165,"toc":1846},"minimark",[166,171,194,198,202,209,272,276,283,404,411,1378,1382,1385,1500,1507,1510,1717,1729,1732,1736,1739,1754,1757,1761,1776,1780,1842],[167,168,170],"h2",{"id":169},"so-funktioniert-es","So funktioniert es",[172,173,174,183,191],"ol",{},[175,176,177,178,182],"li",{},"Solange ein Leser auf Ihrer Website angemeldet ist, signiert Ihr ",[179,180,181],"strong",{},"Backend"," ein kurzlebiges Token, das sagt, wer er ist.",[175,184,185,186,190],{},"Ihre Seite übergibt dieses Token im Attribut ",[187,188,189],"code",{},"sso-token"," an das Kommentar-Widget.",[175,192,193],{},"Crowment prüft die Signatur und meldet den Leser mit dieser Identität in den Kommentaren an.",[195,196,197],"p",{},"Das Token wird mit einem Geheimnis signiert, das nur Ihr Server und Crowment kennen; niemand kann Leser also als jemand anderen anmelden. Single Sign-On ist in jedem Tarif verfügbar.",[167,199,201],{"id":200},"_1-einschalten","1. Einschalten",[195,203,204,205,208],{},"Öffnen Sie ",[179,206,207],{},"Site Console → Ihr Widget → Single Sign-On",". Inhaber und Admins können die Einstellungen ändern.",[210,211,213,218,229,233,254,258],"steps",{"level":212},"3",[214,215,217],"h3",{"id":216},"das-signiergeheimnis-erstellen","Das Signiergeheimnis erstellen",[195,219,220,221,224,225,228],{},"Das kann nur der Inhaber des Widgets. Das Geheimnis wird ",[179,222,223],{},"nur einmal"," angezeigt: Speichern Sie es in den Umgebungsvariablen Ihres Backends, zum Beispiel als ",[187,226,227],{},"CROWMENT_SSO_SECRET",". Legen Sie es nie in Browser-Code, ein App-Bundle oder ein öffentliches Repository.",[214,230,232],{"id":231},"einen-modus-wählen","Einen Modus wählen",[234,235,236,242,248],"ul",{},[175,237,238,241],{},[179,239,240],{},"Off",": Leser melden sich nur mit Crowment an.",[175,243,244,247],{},[179,245,246],{},"Optional",": Auf Ihrer Website angemeldete Leser werden automatisch angemeldet; die Anmeldung mit Crowment bleibt verfügbar.",[175,249,250,253],{},[179,251,252],{},"Required",": Nur Konten Ihrer Website können sich anmelden. Bestehende Kommentare und Sitzungen bleiben erhalten.",[214,255,257],{"id":256},"an-und-abmeldeseite-festlegen-optional","An- und Abmeldeseite festlegen (optional)",[195,259,260,261,264,265,268,269,271],{},"Beide müssen auf der Domain Ihres Widgets liegen. Die Anmeldeschaltfläche des Widgets schickt Leser zu Ihrer ",[179,262,263],{},"Anmeldeseite",", mit einem Parameter ",[187,266,267],{},"return_to",", der die Herkunftsseite enthält. Prüfen Sie, dass ",[187,270,267],{}," auf Ihre eigene Website zeigt, bevor Sie dorthin weiterleiten.",[167,273,275],{"id":274},"_2-ein-token-auf-ihrem-server-signieren","2. Ein Token auf Ihrem Server signieren",[195,277,278,279,282],{},"Signieren Sie bei jedem Seitenaufruf, bei dem ein Leser angemeldet ist, ein JWT mit ",[179,280,281],{},"HS256"," und Ihrem Geheimnis.",[284,285,286,302],"table",{},[287,288,289],"thead",{},[290,291,292,296,299],"tr",{},[293,294,295],"th",{},"Claim",[293,297,298],{},"Pflicht",[293,300,301],{},"Wert",[303,304,305,323,335,352,376,388],"tbody",{},[290,306,307,313,316],{},[308,309,310],"td",{},[187,311,312],{},"sub",[308,314,315],{},"ja",[308,317,318,319,322],{},"Die Benutzer-ID des Lesers auf Ihrer Website, als ",[179,320,321],{},"String",", höchstens 128 Zeichen. Verwenden Sie eine ID, die sich nie ändert und nie wiederverwendet wird; eine E-Mail-Adresse ist eine schlechte Wahl.",[290,324,325,330,332],{},[308,326,327],{},[187,328,329],{},"name",[308,331,315],{},[308,333,334],{},"Der Name neben seinen Kommentaren, bis 100 Zeichen. HTML wird entfernt.",[290,336,337,342,345],{},[308,338,339],{},[187,340,341],{},"avatar",[308,343,344],{},"nein",[308,346,347,348,351],{},"Eine ",[187,349,350],{},"https:\u002F\u002F","-Bild-URL. Alles andere wird ignoriert.",[290,353,354,359,361],{},[308,355,356],{},[187,357,358],{},"badges",[308,360,344],{},[308,362,363,364,367,368,371,372,375],{},"Schlüssel der Abzeichen des Lesers, z. B. ",[187,365,366],{},"[\"vip\"]",", passend zu den SSO-Schlüsseln unter ",[179,369,370],{},"Badges",". Fehlt der Claim, bleiben die Abzeichen unverändert; ",[187,373,374],{},"[]"," entfernt die auf diesem Weg vergebenen. Im Dashboard vergebene Abzeichen bleiben.",[290,377,378,383,385],{},[308,379,380],{},[187,381,382],{},"aud",[308,384,315],{},[308,386,387],{},"Der App Key Ihres Widgets, genau wie im Einbettungscode.",[290,389,390,399,401],{},[308,391,392,395,396],{},[187,393,394],{},"iat",", ",[187,397,398],{},"exp",[308,400,315],{},[308,402,403],{},"Ausstellungs- und Ablaufzeit in Sekunden. Das Token darf höchstens eine Stunde gültig sein. Eine Minute Uhrenabweichung wird toleriert.",[195,405,406,407,410],{},"Ein Claim ",[187,408,409],{},"email"," ist nicht nötig und wird nicht verwendet: Crowment ordnet Konten nie über die E-Mail-Adresse zu.",[412,413,414,616,858,1128],"code-group",{},[415,416,422],"pre",{"className":417,"code":418,"filename":419,"language":420,"meta":421,"style":421},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F npm install jsonwebtoken\nimport jwt from 'jsonwebtoken'\n\nconst ssoToken = jwt.sign(\n  { sub: String(user.id), name: user.displayName, avatar: user.avatarUrl },\n  process.env.CROWMENT_SSO_SECRET,\n  { algorithm: 'HS256', audience: CROWMENT_APP_KEY, expiresIn: '1h' },\n)\n","Node.js","js","",[187,423,424,433,458,465,491,548,566,610],{"__ignoreMap":421},[425,426,429],"span",{"class":427,"line":428},"line",1,[425,430,432],{"class":431},"sHwdD","\u002F\u002F npm install jsonwebtoken\n",[425,434,436,440,444,447,451,455],{"class":427,"line":435},2,[425,437,439],{"class":438},"s7zQu","import",[425,441,443],{"class":442},"sTEyZ"," jwt ",[425,445,446],{"class":438},"from",[425,448,450],{"class":449},"sMK4o"," '",[425,452,454],{"class":453},"sfazB","jsonwebtoken",[425,456,457],{"class":449},"'\n",[425,459,461],{"class":427,"line":460},3,[425,462,464],{"emptyLinePlaceholder":463},true,"\n",[425,466,468,472,475,478,481,484,488],{"class":427,"line":467},4,[425,469,471],{"class":470},"spNyl","const",[425,473,474],{"class":442}," ssoToken ",[425,476,477],{"class":449},"=",[425,479,480],{"class":442}," jwt",[425,482,483],{"class":449},".",[425,485,487],{"class":486},"s2Zo4","sign",[425,489,490],{"class":442},"(\n",[425,492,494,497,501,504,507,510,512,515,518,521,523,526,528,531,533,536,538,540,542,545],{"class":427,"line":493},5,[425,495,496],{"class":449},"  {",[425,498,500],{"class":499},"swJcz"," sub",[425,502,503],{"class":449},":",[425,505,506],{"class":486}," String",[425,508,509],{"class":442},"(user",[425,511,483],{"class":449},[425,513,514],{"class":442},"id)",[425,516,517],{"class":449},",",[425,519,520],{"class":499}," name",[425,522,503],{"class":449},[425,524,525],{"class":442}," user",[425,527,483],{"class":449},[425,529,530],{"class":442},"displayName",[425,532,517],{"class":449},[425,534,535],{"class":499}," avatar",[425,537,503],{"class":449},[425,539,525],{"class":442},[425,541,483],{"class":449},[425,543,544],{"class":442},"avatarUrl ",[425,546,547],{"class":449},"},\n",[425,549,551,554,556,559,561,563],{"class":427,"line":550},6,[425,552,553],{"class":442},"  process",[425,555,483],{"class":449},[425,557,558],{"class":442},"env",[425,560,483],{"class":449},[425,562,227],{"class":442},[425,564,565],{"class":449},",\n",[425,567,569,571,574,576,578,580,583,585,588,590,593,595,598,600,602,605,607],{"class":427,"line":568},7,[425,570,496],{"class":449},[425,572,573],{"class":499}," algorithm",[425,575,503],{"class":449},[425,577,450],{"class":449},[425,579,281],{"class":453},[425,581,582],{"class":449},"'",[425,584,517],{"class":449},[425,586,587],{"class":499}," audience",[425,589,503],{"class":449},[425,591,592],{"class":442}," CROWMENT_APP_KEY",[425,594,517],{"class":449},[425,596,597],{"class":499}," expiresIn",[425,599,503],{"class":449},[425,601,450],{"class":449},[425,603,604],{"class":453},"1h",[425,606,582],{"class":449},[425,608,609],{"class":449}," },\n",[425,611,613],{"class":427,"line":612},8,[425,614,615],{"class":442},")\n",[415,617,622],{"className":618,"code":619,"filename":620,"language":621,"meta":421,"style":421},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F composer require firebase\u002Fphp-jwt\nuse Firebase\\JWT\\JWT;\n\n$now = time();\n$ssoToken = JWT::encode([\n    'sub'    => (string) $user->id,\n    'name'   => $user->display_name,\n    'avatar' => $user->avatar_url,\n    'aud'    => CROWMENT_APP_KEY,\n    'iat'    => $now,\n    'exp'    => $now + 3600,\n], getenv('CROWMENT_SSO_SECRET'), 'HS256');\n","PHP","php",[187,623,624,629,651,655,671,693,728,750,772,787,805,828],{"__ignoreMap":421},[425,625,626],{"class":427,"line":428},[425,627,628],{"class":431},"\u002F\u002F composer require firebase\u002Fphp-jwt\n",[425,630,631,635,638,641,644,646,648],{"class":427,"line":435},[425,632,634],{"class":633},"sbssI","use",[425,636,637],{"class":442}," Firebase",[425,639,640],{"class":449},"\\",[425,642,643],{"class":442},"JWT",[425,645,640],{"class":449},[425,647,643],{"class":442},[425,649,650],{"class":449},";\n",[425,652,653],{"class":427,"line":460},[425,654,464],{"emptyLinePlaceholder":463},[425,656,657,660,663,665,668],{"class":427,"line":467},[425,658,659],{"class":449},"$",[425,661,662],{"class":442},"now ",[425,664,477],{"class":449},[425,666,667],{"class":486}," time",[425,669,670],{"class":449},"();\n",[425,672,673,675,678,680,684,687,690],{"class":427,"line":493},[425,674,659],{"class":449},[425,676,677],{"class":442},"ssoToken ",[425,679,477],{"class":449},[425,681,683],{"class":682},"sBMFI"," JWT",[425,685,686],{"class":449},"::",[425,688,689],{"class":486},"encode",[425,691,692],{"class":449},"([\n",[425,694,695,698,700,702,705,708,711,714,717,720,723,726],{"class":427,"line":550},[425,696,697],{"class":449},"    '",[425,699,312],{"class":453},[425,701,582],{"class":449},[425,703,704],{"class":449},"    =>",[425,706,707],{"class":449}," (",[425,709,710],{"class":470},"string",[425,712,713],{"class":449},")",[425,715,716],{"class":449}," $",[425,718,719],{"class":442},"user",[425,721,722],{"class":449},"->",[425,724,725],{"class":442},"id",[425,727,565],{"class":449},[425,729,730,732,734,736,739,741,743,745,748],{"class":427,"line":568},[425,731,697],{"class":449},[425,733,329],{"class":453},[425,735,582],{"class":449},[425,737,738],{"class":449},"   =>",[425,740,716],{"class":449},[425,742,719],{"class":442},[425,744,722],{"class":449},[425,746,747],{"class":442},"display_name",[425,749,565],{"class":449},[425,751,752,754,756,758,761,763,765,767,770],{"class":427,"line":612},[425,753,697],{"class":449},[425,755,341],{"class":453},[425,757,582],{"class":449},[425,759,760],{"class":449}," =>",[425,762,716],{"class":449},[425,764,719],{"class":442},[425,766,722],{"class":449},[425,768,769],{"class":442},"avatar_url",[425,771,565],{"class":449},[425,773,775,777,779,781,783,785],{"class":427,"line":774},9,[425,776,697],{"class":449},[425,778,382],{"class":453},[425,780,582],{"class":449},[425,782,704],{"class":449},[425,784,592],{"class":442},[425,786,565],{"class":449},[425,788,790,792,794,796,798,800,803],{"class":427,"line":789},10,[425,791,697],{"class":449},[425,793,394],{"class":453},[425,795,582],{"class":449},[425,797,704],{"class":449},[425,799,716],{"class":449},[425,801,802],{"class":442},"now",[425,804,565],{"class":449},[425,806,808,810,812,814,816,818,820,823,826],{"class":427,"line":807},11,[425,809,697],{"class":449},[425,811,398],{"class":453},[425,813,582],{"class":449},[425,815,704],{"class":449},[425,817,716],{"class":449},[425,819,662],{"class":442},[425,821,822],{"class":449},"+",[425,824,825],{"class":633}," 3600",[425,827,565],{"class":449},[425,829,831,834,837,840,842,844,846,849,851,853,855],{"class":427,"line":830},12,[425,832,833],{"class":449},"],",[425,835,836],{"class":486}," getenv",[425,838,839],{"class":449},"(",[425,841,582],{"class":449},[425,843,227],{"class":453},[425,845,582],{"class":449},[425,847,848],{"class":449},"),",[425,850,450],{"class":449},[425,852,281],{"class":453},[425,854,582],{"class":449},[425,856,857],{"class":449},");\n",[415,859,864],{"className":860,"code":861,"filename":862,"language":863,"meta":421,"style":421},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# pip install pyjwt\nimport os\nfrom datetime import datetime, timedelta, timezone\nimport jwt\n\nnow = datetime.now(timezone.utc)\nsso_token = jwt.encode(\n    {\n        \"sub\": str(user.id),\n        \"name\": user.display_name,\n        \"avatar\": user.avatar_url,\n        \"aud\": CROWMENT_APP_KEY,\n        \"iat\": now,\n        \"exp\": now + timedelta(hours=1),\n    },\n    os.environ[\"CROWMENT_SSO_SECRET\"],\n    algorithm=\"HS256\",\n)\n","Python","python",[187,865,866,871,878,900,907,911,935,950,955,981,999,1017,1031,1047,1078,1084,1107,1123],{"__ignoreMap":421},[425,867,868],{"class":427,"line":428},[425,869,870],{"class":431},"# pip install pyjwt\n",[425,872,873,875],{"class":427,"line":435},[425,874,439],{"class":438},[425,876,877],{"class":442}," os\n",[425,879,880,882,885,887,890,892,895,897],{"class":427,"line":460},[425,881,446],{"class":438},[425,883,884],{"class":442}," datetime ",[425,886,439],{"class":438},[425,888,889],{"class":442}," datetime",[425,891,517],{"class":449},[425,893,894],{"class":442}," timedelta",[425,896,517],{"class":449},[425,898,899],{"class":442}," timezone\n",[425,901,902,904],{"class":427,"line":467},[425,903,439],{"class":438},[425,905,906],{"class":442}," jwt\n",[425,908,909],{"class":427,"line":493},[425,910,464],{"emptyLinePlaceholder":463},[425,912,913,915,917,919,921,923,925,928,930,933],{"class":427,"line":550},[425,914,662],{"class":442},[425,916,477],{"class":449},[425,918,889],{"class":442},[425,920,483],{"class":449},[425,922,802],{"class":486},[425,924,839],{"class":449},[425,926,927],{"class":486},"timezone",[425,929,483],{"class":449},[425,931,932],{"class":499},"utc",[425,934,615],{"class":449},[425,936,937,940,942,944,946,948],{"class":427,"line":568},[425,938,939],{"class":442},"sso_token ",[425,941,477],{"class":449},[425,943,480],{"class":442},[425,945,483],{"class":449},[425,947,689],{"class":486},[425,949,490],{"class":449},[425,951,952],{"class":427,"line":612},[425,953,954],{"class":449},"    {\n",[425,956,957,960,962,965,967,970,972,974,976,978],{"class":427,"line":774},[425,958,959],{"class":449},"        \"",[425,961,312],{"class":453},[425,963,964],{"class":449},"\"",[425,966,503],{"class":449},[425,968,969],{"class":682}," str",[425,971,839],{"class":449},[425,973,719],{"class":486},[425,975,483],{"class":449},[425,977,725],{"class":499},[425,979,980],{"class":449},"),\n",[425,982,983,985,987,989,991,993,995,997],{"class":427,"line":789},[425,984,959],{"class":449},[425,986,329],{"class":453},[425,988,964],{"class":449},[425,990,503],{"class":449},[425,992,525],{"class":486},[425,994,483],{"class":449},[425,996,747],{"class":499},[425,998,565],{"class":449},[425,1000,1001,1003,1005,1007,1009,1011,1013,1015],{"class":427,"line":807},[425,1002,959],{"class":449},[425,1004,341],{"class":453},[425,1006,964],{"class":449},[425,1008,503],{"class":449},[425,1010,525],{"class":486},[425,1012,483],{"class":449},[425,1014,769],{"class":499},[425,1016,565],{"class":449},[425,1018,1019,1021,1023,1025,1027,1029],{"class":427,"line":830},[425,1020,959],{"class":449},[425,1022,382],{"class":453},[425,1024,964],{"class":449},[425,1026,503],{"class":449},[425,1028,592],{"class":486},[425,1030,565],{"class":449},[425,1032,1034,1036,1038,1040,1042,1045],{"class":427,"line":1033},13,[425,1035,959],{"class":449},[425,1037,394],{"class":453},[425,1039,964],{"class":449},[425,1041,503],{"class":449},[425,1043,1044],{"class":486}," now",[425,1046,565],{"class":449},[425,1048,1050,1052,1054,1056,1058,1061,1063,1065,1067,1071,1073,1076],{"class":427,"line":1049},14,[425,1051,959],{"class":449},[425,1053,398],{"class":453},[425,1055,964],{"class":449},[425,1057,503],{"class":449},[425,1059,1060],{"class":486}," now ",[425,1062,822],{"class":449},[425,1064,894],{"class":486},[425,1066,839],{"class":449},[425,1068,1070],{"class":1069},"sHdIc","hours",[425,1072,477],{"class":449},[425,1074,1075],{"class":633},"1",[425,1077,980],{"class":449},[425,1079,1081],{"class":427,"line":1080},15,[425,1082,1083],{"class":449},"    },\n",[425,1085,1087,1090,1092,1095,1098,1100,1102,1104],{"class":427,"line":1086},16,[425,1088,1089],{"class":486},"    os",[425,1091,483],{"class":449},[425,1093,1094],{"class":499},"environ",[425,1096,1097],{"class":449},"[",[425,1099,964],{"class":449},[425,1101,227],{"class":453},[425,1103,964],{"class":449},[425,1105,1106],{"class":449},"],\n",[425,1108,1110,1113,1115,1117,1119,1121],{"class":427,"line":1109},17,[425,1111,1112],{"class":1069},"    algorithm",[425,1114,477],{"class":449},[425,1116,964],{"class":449},[425,1118,281],{"class":453},[425,1120,964],{"class":449},[425,1122,565],{"class":449},[425,1124,1126],{"class":427,"line":1125},18,[425,1127,615],{"class":449},[415,1129,1134],{"className":1130,"code":1131,"filename":1132,"language":1133,"meta":421,"style":421},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F go get github.com\u002Fgolang-jwt\u002Fjwt\u002Fv5\nnow := time.Now()\nssoToken, err := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{\n    \"sub\":    strconv.FormatInt(user.ID, 10),\n    \"name\":   user.DisplayName,\n    \"avatar\": user.AvatarURL,\n    \"aud\":    crowmentAppKey,\n    \"iat\":    now.Unix(),\n    \"exp\":    now.Add(time.Hour).Unix(),\n}).SignedString([]byte(os.Getenv(\"CROWMENT_SSO_SECRET\")))\n","Go","go",[187,1135,1136,1141,1158,1199,1234,1254,1273,1288,1309,1343],{"__ignoreMap":421},[425,1137,1138],{"class":427,"line":428},[425,1139,1140],{"class":431},"\u002F\u002F go get github.com\u002Fgolang-jwt\u002Fjwt\u002Fv5\n",[425,1142,1143,1145,1148,1150,1152,1155],{"class":427,"line":435},[425,1144,662],{"class":442},[425,1146,1147],{"class":449},":=",[425,1149,667],{"class":442},[425,1151,483],{"class":449},[425,1153,1154],{"class":486},"Now",[425,1156,1157],{"class":449},"()\n",[425,1159,1160,1163,1165,1168,1170,1172,1174,1177,1179,1182,1184,1187,1189,1191,1193,1196],{"class":427,"line":460},[425,1161,1162],{"class":442},"ssoToken",[425,1164,517],{"class":449},[425,1166,1167],{"class":442}," err ",[425,1169,1147],{"class":449},[425,1171,480],{"class":442},[425,1173,483],{"class":449},[425,1175,1176],{"class":486},"NewWithClaims",[425,1178,839],{"class":449},[425,1180,1181],{"class":442},"jwt",[425,1183,483],{"class":449},[425,1185,1186],{"class":442},"SigningMethodHS256",[425,1188,517],{"class":449},[425,1190,480],{"class":682},[425,1192,483],{"class":449},[425,1194,1195],{"class":682},"MapClaims",[425,1197,1198],{"class":449},"{\n",[425,1200,1201,1204,1206,1208,1210,1213,1215,1218,1220,1222,1224,1227,1229,1232],{"class":427,"line":467},[425,1202,1203],{"class":449},"    \"",[425,1205,312],{"class":453},[425,1207,964],{"class":449},[425,1209,503],{"class":449},[425,1211,1212],{"class":442},"    strconv",[425,1214,483],{"class":449},[425,1216,1217],{"class":486},"FormatInt",[425,1219,839],{"class":449},[425,1221,719],{"class":442},[425,1223,483],{"class":449},[425,1225,1226],{"class":442},"ID",[425,1228,517],{"class":449},[425,1230,1231],{"class":633}," 10",[425,1233,980],{"class":449},[425,1235,1236,1238,1240,1242,1244,1247,1249,1252],{"class":427,"line":493},[425,1237,1203],{"class":449},[425,1239,329],{"class":453},[425,1241,964],{"class":449},[425,1243,503],{"class":449},[425,1245,1246],{"class":442},"   user",[425,1248,483],{"class":449},[425,1250,1251],{"class":442},"DisplayName",[425,1253,565],{"class":449},[425,1255,1256,1258,1260,1262,1264,1266,1268,1271],{"class":427,"line":550},[425,1257,1203],{"class":449},[425,1259,341],{"class":453},[425,1261,964],{"class":449},[425,1263,503],{"class":449},[425,1265,525],{"class":442},[425,1267,483],{"class":449},[425,1269,1270],{"class":442},"AvatarURL",[425,1272,565],{"class":449},[425,1274,1275,1277,1279,1281,1283,1286],{"class":427,"line":568},[425,1276,1203],{"class":449},[425,1278,382],{"class":453},[425,1280,964],{"class":449},[425,1282,503],{"class":449},[425,1284,1285],{"class":442},"    crowmentAppKey",[425,1287,565],{"class":449},[425,1289,1290,1292,1294,1296,1298,1301,1303,1306],{"class":427,"line":612},[425,1291,1203],{"class":449},[425,1293,394],{"class":453},[425,1295,964],{"class":449},[425,1297,503],{"class":449},[425,1299,1300],{"class":442},"    now",[425,1302,483],{"class":449},[425,1304,1305],{"class":486},"Unix",[425,1307,1308],{"class":449},"(),\n",[425,1310,1311,1313,1315,1317,1319,1321,1323,1326,1328,1331,1333,1336,1339,1341],{"class":427,"line":774},[425,1312,1203],{"class":449},[425,1314,398],{"class":453},[425,1316,964],{"class":449},[425,1318,503],{"class":449},[425,1320,1300],{"class":442},[425,1322,483],{"class":449},[425,1324,1325],{"class":486},"Add",[425,1327,839],{"class":449},[425,1329,1330],{"class":442},"time",[425,1332,483],{"class":449},[425,1334,1335],{"class":442},"Hour",[425,1337,1338],{"class":449},").",[425,1340,1305],{"class":486},[425,1342,1308],{"class":449},[425,1344,1345,1348,1351,1354,1357,1359,1362,1364,1367,1369,1371,1373,1375],{"class":427,"line":789},[425,1346,1347],{"class":449},"}).",[425,1349,1350],{"class":486},"SignedString",[425,1352,1353],{"class":449},"([]",[425,1355,1356],{"class":470},"byte",[425,1358,839],{"class":449},[425,1360,1361],{"class":442},"os",[425,1363,483],{"class":449},[425,1365,1366],{"class":486},"Getenv",[425,1368,839],{"class":449},[425,1370,964],{"class":449},[425,1372,227],{"class":453},[425,1374,964],{"class":449},[425,1376,1377],{"class":449},")))\n",[167,1379,1381],{"id":1380},"_3-an-das-widget-übergeben","3. An das Widget übergeben",[195,1383,1384],{},"Bei serverseitig gerenderten Seiten setzen Sie das Token in den Einbettungscode:",[415,1386,1390],{"className":1387,"code":1388,"language":1389,"meta":421,"style":421},"language-html shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript defer src=\"https:\u002F\u002Fembeds.crowment.com\u002Fcomments.js\">\u003C\u002Fscript>\n\n\u003C!-- signed in: pass the token your backend signed for this page view -->\n\u003Ccrow-comments app-key=\"YOUR_APP_KEY\" sso-token=\"SIGNED_TOKEN\">\u003C\u002Fcrow-comments>\n\n\u003C!-- signed out: leave sso-token out -->\n\u003Ccrow-comments app-key=\"YOUR_APP_KEY\">\u003C\u002Fcrow-comments>\n","html",[187,1391,1392,1423,1427,1432,1469,1473,1478],{"__ignoreMap":421},[425,1393,1394,1397,1400,1403,1406,1408,1410,1413,1415,1418,1420],{"class":427,"line":428},[425,1395,1396],{"class":449},"\u003C",[425,1398,1399],{"class":499},"script",[425,1401,1402],{"class":470}," defer",[425,1404,1405],{"class":470}," src",[425,1407,477],{"class":449},[425,1409,964],{"class":449},[425,1411,1412],{"class":453},"https:\u002F\u002Fembeds.crowment.com\u002Fcomments.js",[425,1414,964],{"class":449},[425,1416,1417],{"class":449},">\u003C\u002F",[425,1419,1399],{"class":499},[425,1421,1422],{"class":449},">\n",[425,1424,1425],{"class":427,"line":435},[425,1426,464],{"emptyLinePlaceholder":463},[425,1428,1429],{"class":427,"line":460},[425,1430,1431],{"class":431},"\u003C!-- signed in: pass the token your backend signed for this page view -->\n",[425,1433,1434,1436,1439,1442,1444,1446,1449,1451,1454,1456,1458,1461,1463,1465,1467],{"class":427,"line":467},[425,1435,1396],{"class":449},[425,1437,1438],{"class":499},"crow-comments",[425,1440,1441],{"class":470}," app-key",[425,1443,477],{"class":449},[425,1445,964],{"class":449},[425,1447,1448],{"class":453},"YOUR_APP_KEY",[425,1450,964],{"class":449},[425,1452,1453],{"class":470}," sso-token",[425,1455,477],{"class":449},[425,1457,964],{"class":449},[425,1459,1460],{"class":453},"SIGNED_TOKEN",[425,1462,964],{"class":449},[425,1464,1417],{"class":449},[425,1466,1438],{"class":499},[425,1468,1422],{"class":449},[425,1470,1471],{"class":427,"line":493},[425,1472,464],{"emptyLinePlaceholder":463},[425,1474,1475],{"class":427,"line":550},[425,1476,1477],{"class":431},"\u003C!-- signed out: leave sso-token out -->\n",[425,1479,1480,1482,1484,1486,1488,1490,1492,1494,1496,1498],{"class":427,"line":568},[425,1481,1396],{"class":449},[425,1483,1438],{"class":499},[425,1485,1441],{"class":470},[425,1487,477],{"class":449},[425,1489,964],{"class":449},[425,1491,1448],{"class":453},[425,1493,964],{"class":449},[425,1495,1417],{"class":449},[425,1497,1438],{"class":499},[425,1499,1422],{"class":449},[195,1501,1502,1503,1506],{},"Übergeben Sie auf ",[179,1504,1505],{},"jeder"," Seite, auf der der Leser angemeldet ist, ein Token. Eine Seite ohne Token sagt dem Widget, dass sich der Leser abgemeldet hat, und das Widget meldet ihn auch in den Kommentaren ab. Weitere Seitenaufrufe melden ihn nicht jedes Mal neu an: Das Widget behält seine Sitzung und tauscht nur ein neues Token ein, wenn sich der Leser ändert.",[195,1508,1509],{},"In einer Single-Page-App setzen und entfernen Sie das Attribut, wenn sich Ihr Anmeldestatus ändert, und hören auf die Ereignisse des Widgets:",[415,1511,1513],{"className":417,"code":1512,"language":420,"meta":421,"style":421},"const widget = document.querySelector('crow-comments')\n\n\u002F\u002F after your site signs the reader in\nwidget.setAttribute('sso-token', await fetchCrowmentToken())\n\n\u002F\u002F after your site signs the reader out\nwidget.removeAttribute('sso-token')\n\n\u002F\u002F the token expired while the page was open: hand over a fresh one\nwidget.addEventListener('crow:sso-expired', async () => {\n  widget.setAttribute('sso-token', await fetchCrowmentToken())\n})\n\n\u002F\u002F Required mode without a sign-in page: show your own login\nwidget.addEventListener('crow:login-required', () => openLoginDialog())\n",[187,1514,1515,1542,1546,1551,1580,1584,1589,1608,1612,1617,1648,1673,1680,1684,1689],{"__ignoreMap":421},[425,1516,1517,1519,1522,1524,1527,1529,1532,1534,1536,1538,1540],{"class":427,"line":428},[425,1518,471],{"class":470},[425,1520,1521],{"class":442}," widget ",[425,1523,477],{"class":449},[425,1525,1526],{"class":442}," document",[425,1528,483],{"class":449},[425,1530,1531],{"class":486},"querySelector",[425,1533,839],{"class":442},[425,1535,582],{"class":449},[425,1537,1438],{"class":453},[425,1539,582],{"class":449},[425,1541,615],{"class":442},[425,1543,1544],{"class":427,"line":435},[425,1545,464],{"emptyLinePlaceholder":463},[425,1547,1548],{"class":427,"line":460},[425,1549,1550],{"class":431},"\u002F\u002F after your site signs the reader in\n",[425,1552,1553,1556,1558,1561,1563,1565,1567,1569,1571,1574,1577],{"class":427,"line":467},[425,1554,1555],{"class":442},"widget",[425,1557,483],{"class":449},[425,1559,1560],{"class":486},"setAttribute",[425,1562,839],{"class":442},[425,1564,582],{"class":449},[425,1566,189],{"class":453},[425,1568,582],{"class":449},[425,1570,517],{"class":449},[425,1572,1573],{"class":438}," await",[425,1575,1576],{"class":486}," fetchCrowmentToken",[425,1578,1579],{"class":442},"())\n",[425,1581,1582],{"class":427,"line":493},[425,1583,464],{"emptyLinePlaceholder":463},[425,1585,1586],{"class":427,"line":550},[425,1587,1588],{"class":431},"\u002F\u002F after your site signs the reader out\n",[425,1590,1591,1593,1595,1598,1600,1602,1604,1606],{"class":427,"line":568},[425,1592,1555],{"class":442},[425,1594,483],{"class":449},[425,1596,1597],{"class":486},"removeAttribute",[425,1599,839],{"class":442},[425,1601,582],{"class":449},[425,1603,189],{"class":453},[425,1605,582],{"class":449},[425,1607,615],{"class":442},[425,1609,1610],{"class":427,"line":612},[425,1611,464],{"emptyLinePlaceholder":463},[425,1613,1614],{"class":427,"line":774},[425,1615,1616],{"class":431},"\u002F\u002F the token expired while the page was open: hand over a fresh one\n",[425,1618,1619,1621,1623,1626,1628,1630,1633,1635,1637,1640,1643,1645],{"class":427,"line":789},[425,1620,1555],{"class":442},[425,1622,483],{"class":449},[425,1624,1625],{"class":486},"addEventListener",[425,1627,839],{"class":442},[425,1629,582],{"class":449},[425,1631,1632],{"class":453},"crow:sso-expired",[425,1634,582],{"class":449},[425,1636,517],{"class":449},[425,1638,1639],{"class":470}," async",[425,1641,1642],{"class":449}," ()",[425,1644,760],{"class":470},[425,1646,1647],{"class":449}," {\n",[425,1649,1650,1653,1655,1657,1659,1661,1663,1665,1667,1669,1671],{"class":427,"line":807},[425,1651,1652],{"class":442},"  widget",[425,1654,483],{"class":449},[425,1656,1560],{"class":486},[425,1658,839],{"class":499},[425,1660,582],{"class":449},[425,1662,189],{"class":453},[425,1664,582],{"class":449},[425,1666,517],{"class":449},[425,1668,1573],{"class":438},[425,1670,1576],{"class":486},[425,1672,1579],{"class":499},[425,1674,1675,1678],{"class":427,"line":830},[425,1676,1677],{"class":449},"}",[425,1679,615],{"class":442},[425,1681,1682],{"class":427,"line":1033},[425,1683,464],{"emptyLinePlaceholder":463},[425,1685,1686],{"class":427,"line":1049},[425,1687,1688],{"class":431},"\u002F\u002F Required mode without a sign-in page: show your own login\n",[425,1690,1691,1693,1695,1697,1699,1701,1704,1706,1708,1710,1712,1715],{"class":427,"line":1080},[425,1692,1555],{"class":442},[425,1694,483],{"class":449},[425,1696,1625],{"class":486},[425,1698,839],{"class":442},[425,1700,582],{"class":449},[425,1702,1703],{"class":453},"crow:login-required",[425,1705,582],{"class":449},[425,1707,517],{"class":449},[425,1709,1642],{"class":449},[425,1711,760],{"class":470},[425,1713,1714],{"class":486}," openLoginDialog",[425,1716,1579],{"class":442},[234,1718,1719,1724],{},[175,1720,1721,1723],{},[187,1722,1632],{},": Das Widget musste den Leser anmelden, aber das Token war abgelaufen. Setzen Sie ein neues.",[175,1725,1726,1728],{},[187,1727,1703],{},": Modus Required, keine Anmeldeseite festgelegt, und der Leser hat auf die Anmeldeschaltfläche geklickt.",[195,1730,1731],{},"Leser, die sich über Ihre Website angemeldet haben, melden sich auch dort ab. Ohne Abmeldeseite blendet das Widget seine eigene Abmeldeschaltfläche aus, denn ein fehlendes Token auf der nächsten Seite meldet sie ohnehin ab.",[167,1733,1735],{"id":1734},"_4-kontoverknüpfung","4. Kontoverknüpfung",[195,1737,1738],{},"Ein Leser, der bereits ein Crowment-Konto hat, kann es im Kommentarbereich über das Link-Symbol neben seinem Avatar verknüpfen. Er meldet sich in einem Pop-up bei Crowment an und bestätigt auf einer Crowment-Seite. Von da an meldet Ihre Website ihn mit seinem Crowment-Konto an, und die Kommentare, die er mit seinem Website-Konto geschrieben hat, gehen auf dieses über.",[195,1740,1741,1742,1745,1746,1749,1750,1753],{},"Die Verknüpfung erlaubt Ihrer Website, diesen Leser ",[179,1743,1744],{},"auf Ihren eigenen Seiten"," mit seinem Crowment-Konto anzumelden; die Bestätigungsseite weist darauf hin. Er kann die Verknüpfung jederzeit in der User Console unter ",[179,1747,1748],{},"Profile → Linked sites"," aufheben; seine Kommentare bleiben bei ihm. Sie können die Verknüpfung in den SSO-Einstellungen unter ",[179,1751,1752],{},"Account linking"," abschalten.",[195,1755,1756],{},"Namen und Avatare aus Ihrem Token aktualisieren das Kommentarprofil des Lesers bei jeder Anmeldung. Verknüpfte Crowment-Konten behalten ihren eigenen Namen und Avatar.",[167,1758,1760],{"id":1759},"sicherheit","Sicherheit",[234,1762,1763,1766,1773],{},[175,1764,1765],{},"Bewahren Sie das Geheimnis auf Ihrem Server auf. Wer es besitzt, kann Leser auf Ihrer Website als beliebige Person anmelden.",[175,1767,1768,1769,1772],{},"Wenn es durchsickert, wählen Sie ",[179,1770,1771],{},"Replace secret",". Mit dem alten Geheimnis signierte Tokens funktionieren sofort nicht mehr, setzen Sie das neue also umgehend ein. Bereits in den Kommentaren angemeldete Leser bleiben angemeldet.",[175,1774,1775],{},"Signieren Sie Tokens nur für den Leser der aktuellen Anfrage und halten Sie sie kurzlebig.",[167,1777,1779],{"id":1778},"fehlerbehebung","Fehlerbehebung",[284,1781,1782,1792],{},[287,1783,1784],{},[290,1785,1786,1789],{},[293,1787,1788],{},"Symptom",[293,1790,1791],{},"Wahrscheinliche Ursache",[303,1793,1794,1813,1826,1834],{},[290,1795,1796,1801],{},[308,1797,1798],{},[187,1799,1800],{},"invalid_sso_token",[308,1802,1803,1804,1806,1807,1809,1810,1812],{},"Falsches oder ersetztes Geheimnis, ",[187,1805,382],{}," ist nicht der App Key, ein anderer Algorithmus als HS256, ",[187,1808,312],{}," als Zahl gesendet, ein leerer ",[187,1811,329],{}," oder eine Gültigkeit über einer Stunde.",[290,1814,1815,1820],{},[308,1816,1817],{},[187,1818,1819],{},"sso_token_expired",[308,1821,1822,1823,1825],{},"Das ",[187,1824,398],{}," des Tokens ist überschritten oder Ihre Serveruhr geht falsch. Signieren Sie pro Seitenaufruf ein neues Token.",[290,1827,1828,1831],{},[308,1829,1830],{},"SSO is not enabled for this app",[308,1832,1833],{},"Der Modus ist Off oder es wurde kein Geheimnis erstellt.",[290,1835,1836,1839],{},[308,1837,1838],{},"Request origin does not match",[308,1840,1841],{},"Die Seite liegt nicht auf der Domain Ihres Widgets oder einer ihrer Subdomains.",[1843,1844,1845],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":421,"searchDepth":435,"depth":460,"links":1847},[1848,1849,1854,1855,1856,1857,1858],{"id":169,"depth":435,"text":170},{"id":200,"depth":435,"text":201,"children":1850},[1851,1852,1853],{"id":216,"depth":460,"text":217},{"id":231,"depth":460,"text":232},{"id":256,"depth":460,"text":257},{"id":274,"depth":435,"text":275},{"id":1380,"depth":435,"text":1381},{"id":1734,"depth":435,"text":1735},{"id":1759,"depth":435,"text":1760},{"id":1778,"depth":435,"text":1779},"Leser, die auf Ihrer Website angemeldet sind, sind auch in den Kommentaren angemeldet. Kein zweites Konto, keine zweite Anmeldung.","md",{},{"title":93,"description":1859},"ap5czM1Q-hwfAqEBbuTZvK-52ejWYtw51oEBA9A2p6c",[1865,1867],{"title":83,"path":84,"stem":85,"description":1866,"children":-1},"Zeigen Sie Übersetzer, Unterstützer und VIPs neben ihrem Namen, von Hand vergeben oder über Single Sign-On.",{"title":103,"path":104,"stem":105,"description":1868,"children":-1},"Was Tarife begrenzen, wie Sie upgraden, downgraden oder kündigen, und was passiert, wenn eine Zahlung fehlschlägt oder Sie ein Limit überschreiten.",1792581801502]