Loslegen
Einführung
Hier erfährst du alles über die Implementierung von
in deine Webseite und Prozesse. Für genauere Informationen zu unserer API und dem Authentifizierungsprozess kannst du unsere Dokumentation lesen.
Hier kannst du ein Beispielprojekt (Flask) herunterladen.
1. Anlegen deiner App
Um Accounda als Authentifizierungsmethode einzubinden, benötigst du eine App. Erstelle hier deine App.
Sobald du eine App angelegt hast, klicke auf Authentifizierungsdaten und speichere die CLIENT_ID und den CLIENT_SECRET.
2. Implementierung in deine Applikation
Lege nun eine Weiterleitungs-URL im App Dashboard an. Sobald der Nutzer deine App auf Accounda autorisiert hat, wird dieser an diese URL weitergeleitet. Kopiere anschließend den Link. (Du kannst Zugriffsrechte auf Google, Microsoft, und Co. anfordern, indem du das jeweilige Symbol zuerst anklickst und anschließend den Link kopierst.)
Erstelle anschließend einen Button in deiner App, welcher den Nutzer auf diesen Link weiterleitet:
<a class="accounda-oauth-btn" href="PASTE LINK HERE">
Anmelden mit
<img src="https://accounda.blob.core.windows.net/static/full-logo-darkmode.svg" width="90px">
</a>
.accounda-oauth-btn {
display: block;
font-family: "Verdana", "Arial", "Tahoma", sans-serif;
max-width: 370px;
width: calc(100% - 8px);
font-size: 16px;
color: #fff;
text-align: center;
background-color: rgba(27, 28, 34, 0.9);
border: 1px solid rgba(88, 243, 151, 0.7);
padding: 12px 0;
border-radius: 8px;
font-weight: 570;
cursor: pointer;
text-decoration: none;
span {
margin-left: 2px;
}
}
Sobald der Nutzer deine App autorisiert hat, wird dieser an deine zuvor definierte URL weitergeleitet. Zusätzlich wird eine AUTH_ID [ ?auth_id ] und ein AUTH_TOKEN [ ?token ] als GET Parameter übergeben. Du kannst nun mit Hilfe der AUTH_ID auf autorisierte Daten zugreifen. Um einen Nutzer eindeutig authentifizieren zu können, benötigst du die AUTH_ID in Kombination mit dem AUTH_TOKEN.
Um mit der API interagieren zu können, benötigst du zuerst einen ACCESS_TOKEN. Um einen ACCESS_TOKEN zu erhalten, musst du dich bei der API mittels CLIENT_ID und CLIENT_SECRETauthentifizieren.
import requests
url = 'https://api.accounda.com/v1/token/'
data = {
'client_id': 'PASTE CLIENT_ID HERE',
'client_secret': 'PASTE CLIENT_SECRET HERE'
}
response = requests.post(url, data=data)
access_token = response.json()['access_token']
3. Nutzer authentifizieren
Im dritten Schritt stellst du sicher, dass der Nutzer korrekt erkannt wird. Dazu verwendest du die AUTH_ID und das AUTH_TOKEN, die nach der Autorisierung übermittelt wurden. Mit diesen Daten kannst du den Nutzer sicher identifizieren und überprüfen, dass er berechtigt ist, die Anwendung zu nutzen.
url = 'https://api.accounda.com/v1/user/validate/?auth_id=PASTE AUTH_ID HERE'
headers = {
'Authorization': f'Bearer {access_token}',
'Content-Type': 'application/json',
'Client-ID': 'PASTE CLIENT_ID HERE',
'Auth-Token': 'PASTE AUTH_TOKEN HERE'
}
response = requests.get(url, headers=headers)
data = response.json()
if data.get('error'):
raise Exception(data['error'])
Der oben stehende Code-Snippet zeigt die einfachste Form der Authentifizierung. Um in derselben Anfrage auch autorisierte Daten zu erhalten, kannst du die entsprechenden Parameter verwenden:
1: optional
, 8: required
Standard Daten: &user_data=1
*Google: &google=1
*Microsoft: µsoft=1
*Discord: &discord=1
*GitHub: &github=1
* Nur in Kombination mit &user_data=1
als Parameter möglich.
Genauere Informationen zur Nutzerauthentifizierung findest du hier.
4. Autorisierte Daten abrufen
Solltest du nur auf autorisierte Daten zugreifen wollen, kannst du dies allein mit der AUTH_ID tun. Eine eindeutige Identifizierung oder Authentifizierung ist damit jedoch nicht gewährleistet.url = 'https://api.accounda.com/v1/user/information/?auth_id=PASTE AUTH_ID HERE'
headers = {
'Authorization': f'Bearer {access_token}',
'Content-Type': 'application/json',
'Client-ID': 'PASTE CLIENT_ID HERE'
}
response = requests.get(url, headers=headers)
data = response.json()
Um in derselben Anfrage auch autorisierte Daten von Dritten zu erhalten, kannst du die entsprechenden Parameter verwenden:
1: optional
, 8: required
*Google: &google=1
*Microsoft: µsoft=1
*Discord: &discord=1
*GitHub: &github=1
Genauere Informationen zum Abrufen von Daten findest du hier.