{"id":7252,"date":"2026-01-28T10:05:43","date_gmt":"2026-01-28T09:05:43","guid":{"rendered":"https:\/\/churchtools.academy\/?post_type=docs&#038;p=7252"},"modified":"2026-03-04T08:49:41","modified_gmt":"2026-03-04T07:49:41","password":"","slug":"api-authentifizierung","status":"publish","type":"docs","link":"https:\/\/churchtools.academy\/de\/help\/system-einstellungen\/api\/api-authentifizierung\/","title":{"rendered":"API Authentifizierung"},"content":{"rendered":"\n<p>Bei Authentifizierung sprechen wir von einem Nachweis einer Eigenschaft gegen\u00fcber einer Entit\u00e4t. \u00dcbersetzt hei\u00dft das, dass ein Request an die REST API authentifiziert werden muss. Der Absender muss ChurchTools klarmachen, dass er diese Aktion ausf\u00fchren kann. Im Browser passiert das mittels eines Login. Der Nutzer muss einen Benutzernamen und ein Passwort angeben, bevor er eine Aktion in ChurchTools durchf\u00fchren kann.<\/p>\n\n\n\n<p>Die Authentifizierung \u00fcber die API kann mittels Passwort oder Login Token passieren. Wir schauen uns im Folgenden beide Verfahren anhand von Beispielen genauer an und erkl\u00e4ren, welche wann am besten geeignet ist.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Benutzername und Passwort<\/h3>\n\n\n\n<p>Es ist m\u00f6glich, dass man sich mittels Benutzernamen und Passwort authentifiziert. Dies ist sinnvoll, wenn man eine App baut, die Nutzer individuell nutzen k\u00f6nnen. Sprich, sie m\u00fcssen sich selbst einloggen.<\/p>\n\n\n\n<p>Folgender Request authentifiziert einen Nutzer mit ChurchTools:<\/p>\n\n\n\n<p><code>POST \/login HTTP\/1.1<\/code><br><code>Host: http:\/\/meine-gemeinde.test\/api<\/code><br><code>Content-Type: application\/json<\/code><br><br><code>{<\/code><br><code>\u00a0\"username\": \"max\",<\/code><br><code>\u00a0\"password\": \"superGeheimesPasswort\"<\/code><br><code>}<\/code><\/p>\n\n\n\n<p>Der Endpoint <code>POST \/api\/login<\/code> nimmt einen <code>Benutzernamen<\/code> und ein P<code>asswort<\/code> entgegen und loggt den Benutzer ein. Als Antwort schickt ChurchTools ein Session-Cookie mit (lies dazu \u201eSession und Cookies\u201c weiter unten). Dieser Cookie kann f\u00fcr Folgerequests verwendet werden, um mit der REST API zu interagieren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Login-Token<\/h3>\n\n\n\n<p>Die zweite Variante, um sich zu authentifizieren, ist, einen Login-Token mitzuschicken. Auch des \u00f6fteren API-Token genannt. Dieser Token kann \u00fcber den Authorization Header bei einem Request mitgeschickt werden: <code>Authorization: Login &lt;token&gt;<\/code>. Sollte der Request nicht autorisiert sein, d.&nbsp;h. es wurde kein g\u00fcltiges Session-Cookie mitgeschickt, versucht ChurchTools den Request anhand des Tokens zu authentifizieren.<\/p>\n\n\n\n<p>Der Token ist ein langer Textstring und f\u00fcr jeden Nutzer individuell. Dieser String authentifiziert einen ChurchTools-User. Der Token kann entweder \u00fcber die Weboberfl\u00e4che abgerufen werden oder \u00fcber die API direkt.<\/p>\n\n\n\n<p><strong>Web:<\/strong> In ChurchTools kann der Token \u00fcber das Profil eines Nutzers abgerufen werden.<\/p>\n\n\n\n<p><strong>API:<\/strong> Derselbe Token kann f\u00fcr eine Person auch \u00fcber den Endpoint GET \/api\/persons\/&lt;personId&gt;\/logintoken gefunden werden.<\/p>\n\n\n\n<p>GET \/persons\/1\/logintoken HTTP\/1.1<br>Host: http:\/\/meine-gemeinde.test\/api<br>Content-Type: application\/json<\/p>\n\n\n\n<p><strong>Beispiel:<\/strong> Die ChurchTools App nutzt eine Kombination aus Login und Token. Der Benutzer kann sich mit Benutzernamen und Passwort in der App einloggen. Dabei wird eine Session erstellt und das Cookie an die App geschickt. Die holt sich im Anschluss sofort den Login-Token der Person \u00fcber die API. Das Session-Cookie wird bei weiteren Requests mitgeschickt. Sollte die Session auslaufen (i.&nbsp;d.&nbsp;R. nach 1 Tag) wird ein <code>401 Unauthorized<\/code> zur\u00fcckgegeben und nun wird mittels des Login-Token eine neue g\u00fcltige Session erstellt. Der Token wird dabei einfach beim n\u00e4chsten Request angeh\u00e4ngt, ChurchTools authentifiziert den Request und erstellt eine neue Session und ein neues Cookie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Session und Cookie<\/h2>\n\n\n\n<p>In ChurchTools wird f\u00fcr jeden Nutzer eine Session erstellt. Sollte ein Request an ChurchTools gesendet werden, ist es ratsam, immer ein g\u00fcltiges Session-Cookie mitzuschicken, sofern vorhanden. Dieses Cookie erlaubt es, auf einen bestehenden, schon vorkalkulierten State zur\u00fcckzugreifen und somit den ganzen Request zu beschleunigen.<\/p>\n\n\n\n<p>F\u00fcr jede Session berechnet ChurchTools die Berechtigungen f\u00fcr diesen Nutzer. Dieser Schritt ist rechenintensiv. Wird kein Session-Cookie mitgeschickt, w\u00fcrde ChurchTools die Berechtigungen bei jedem Request neu berechnen und das erfordert Zeit. Du sparst dir Zeit und gewinnst an Performance, wenn der Request mit einem g\u00fcltigen Session-Cookie geschickt wird.<\/p>\n\n\n\n<aside class=\"wp-block-group ct-artikel-zum-weiterlesen has-background is-layout-constrained wp-container-core-group-is-layout-89fd719a wp-block-group-is-layout-constrained\" style=\"border-radius:8px;background-color:#f9fafb;margin-top:24px;margin-bottom:24px;padding-top:32px;padding-right:24px;padding-bottom:32px;padding-left:24px\">\n<h2 class=\"wp-block-heading has-medium-font-size\">Artikel zum Weiterlesen<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/churchtools.academy\/de\/help\/system-einstellungen\/api\/0-api\/\" data-type=\"docs\" data-id=\"7251\">\u00dcberblick API<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/churchtools.academy\/de\/help\/system-einstellungen\/api\/0-api-dokumentation\/\" data-type=\"docs\" data-id=\"7253\">API Dokumentation<\/a><\/li>\n<\/ul>\n<\/aside>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bei Authentifizierung sprechen wir von einem Nachweis einer Eigenschaft gegen\u00fcber einer Entit\u00e4t. \u00dcbersetzt hei\u00dft das, dass ein Request an die REST API authentifiziert werden muss. Der Absender muss ChurchTools klarmachen, dass er diese Aktion ausf\u00fchren kann. Im Browser passiert das mittels eines Login. Der Nutzer muss einen Benutzernamen und ein Passwort angeben, bevor er eine [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"doc_category":[370],"doc_tag":[268,269],"knowledge_base":[346],"class_list":["post-7252","docs","type-docs","status-publish","hentry","doc_category-api","doc_tag-inhalt-veraltet","doc_tag-screenshot-veraltet","knowledge_base-system-einstellungen"],"pp_statuses_selecting_workflow":false,"pp_workflow_action":"current","pp_status_selection":"publish","acf":[],"year_month":"2026-04","word_count":553,"total_views":"3561","reactions":{"happy":"1","normal":"0","sad":"3"},"author_info":{"name":"Victoria Weidemann","author_nicename":"vweidemann","author_url":"https:\/\/churchtools.academy\/de\/author\/vweidemann\/"},"doc_category_info":[{"term_name":"API","term_url":"https:\/\/churchtools.academy\/de\/help\/system-einstellungen\/api\/"}],"doc_tag_info":[{"term_name":"Inhalt veraltet","term_url":"https:\/\/churchtools.academy\/de\/docs-tag\/inhalt-veraltet\/"},{"term_name":"Screenshot veraltet","term_url":"https:\/\/churchtools.academy\/de\/docs-tag\/screenshot-veraltet\/"}],"knowledge_base_info":[{"term_name":"System-Einstellungen","term_url":"https:\/\/churchtools.academy\/de\/help\/system-einstellungen\/","term_slug":"system-einstellungen"}],"knowledge_base_slug":["system-einstellungen"],"_links":{"self":[{"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/docs\/7252","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/comments?post=7252"}],"version-history":[{"count":12,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/docs\/7252\/revisions"}],"predecessor-version":[{"id":49249,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/docs\/7252\/revisions\/49249"}],"wp:attachment":[{"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/media?parent=7252"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/doc_category?post=7252"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/doc_tag?post=7252"},{"taxonomy":"knowledge_base","embeddable":true,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/knowledge_base?post=7252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}