AzAuth
AzAuth is een API waarmee u gebruikers van een website onder Azuriom op elk platform kunt authenticeren.
Ongeacht hoe u de client-side auth-api gebruikt, u moet zich verifiëren op de server waarop het toegangstoken door de client is geretourneerd en geldig is door gebruik te maken van deverificatie
-methode.
Download
AzAuth-bronnen zijn beschikbaar op GitHub en het jar-bestand kan worden gedownload hier.
Als u een afhankelijkheidsmanager gebruikt, kunt u AzAuth toevoegen als afhankelijkheid op de volgende manier:
Gradle
in de build.gradle
:
repositories {
mavenCentral()
}
dependencies {
implementation 'com.azuriom:azauth:1.0.0'
}
Maven
In de pom.xml
:
<dependencies>
<dependency>
<groupId>com.azuriom</groupId>
<artifactId>azauth</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
AzAuth gebruik (Java)
Voordat u AzAuth gebruikt, moet u ervoor zorgen dat de API is geactiveerd door naar: de instellingen van uw site te gaan, in uw beheerders paneel.
Gebruik zonder OpenLauncherLib
AzAuth is ontworpen met Gson als enige afhankelijkheid, dus je kunt het perfect gebruiken als je OpenLauncherLib niet gebruikt,
Je kunt gewoon AuthClient#authenticate(String gebruikersnaam, String wachtwoord, Supplier<String> codeSupplier)
gebruiken en dat geeft
je direct een Gebruiker
met daaring een gebruikersnaam, uuid, rang, toegangstoken en tal van andere nuttige gegevens. De codeSupplier
wordt aangeroepen als de gebruiker 2FA heeft ingeschakeld en de gebruikerscode moet worden teruggestuurd naar de leverancier.
Gebruiken met OpenLauncherLib (voor minecraft launcher)
Voeg om te beginnen AzAuth toe als afhankelijkheid aan uw project. Als u OpenAuth gebruikt, is het ook aan te raden deze te verwijderen, hoewel het geen echte problemen veroorzaakt, wordt het niet meer gebruikt als je AzAuth gebruikt.
U zou in de code van uw opstartprogramma een auth
-methode moeten hebben die lijkt op de onderstaande code:
public static void auth(String username, String password) throws AuthenticationException {
Authenticator authenticator = new Authenticator(Authenticator.MOJANG_AUTH_URL, AuthPoints.NORMAL_AUTH_POINTS);
AuthResponse response = authenticator.authenticate(AuthAgent.MINECRAFT, username, password, "");
authInfos = new AuthInfos(response.getSelectedProfile().getName(), response.getAccessToken(), response.getSelectedProfile().getId());
}
Je hoeft het alleen maar te vervangen door de onderstaande code, om <url>
te wijzigen, moet je de URL van de hoofdmap van je Azuriom website gebruiken.
public static void auth(String username, String password) throws AuthException {
AuthClient authenticator = new AuthClient("<url>");
AuthInfos = authenticator.login(username, password, () -> {
String code = null;
while (code == null || code.isEmpty()) {
// De bovenliggende component voor het dialoogvenster. U moet de code vervangen
// hieronder met een exemplaar van je launcher frame/panel/etc
Container parentComponent = LauncherFrame.getInstance().getLauncherPanel();
parentComponent.setVisible(true);
code = JOptionPane.showInputDialog(parentComponent, "Enter your 2FA code", "2FA", JOptionPane.PLAIN_MESSAGE);
}
return code;
}, AuthInfos.class);
}
Gebruik met JavaScript
Installatie
De broncode is beschikbaar op GitHub en het pakket kan worden geïnstalleerd met npm:
npm install azuriom-auth
Voorbeeld
import { AuthClient } from 'azuriom-auth'
async function login(email, password) {
const client = new AuthClient('<url van je website>')
let result = await client.login(email, password)
if (result.status === 'pending' && result.requires2fa) {
const twoFactorCode = '' // BELANGRIJK: Vervang door de tijdelijke gebruikerscode van 2FA
result = await client.login(email, password, twoFactorCode)
}
if (result.status !== 'success') {
throw 'Unexpected result: ' + JSON.stringify(result)
}
return result
}
Eindpunten
Authenticatie
POST /authenticate
Verifieer een gebruiker met hun website-inloggegevens
Verzoek
Veld | Beschrijving |
---|---|
Gebruikersnaam of e-mailadres | |
wachtwoord | wachtwoord |
code | 2FA-code, mag alleen worden opgenomen als het antwoord status in behandeling is en de reden 2fa is |
Antwoord
Retourneert de gebruiker met verschillende informatie en het unieke token die kan worden gebruikt om de verbinding te verifiëren of om de verbinding te verbreken.
{
"id": 1,
"username": "Gebruikersnaam",
"uuid": "00000000-0000-0000-0000-000000000000",
"email_verified": true,
"money": 100.0,
"role": {
"name": "Lid",
"color": "#e10d11"
},
"banned": false,
"created_at": "2020-06-29T17:39:12+00:00",
"access_token": "xxxxxxxx"
}
Verificatie
POST /verify
Verzoek
Veld | Beschrijving |
---|---|
toegangstoken | Uniek toegangstoken |
Antwoord
Retourneert de gebruiker met verschillende informatie en het unieke token die kan worden gebruikt om de verbinding te verifiëren of om de verbinding te verbreken.
Voorbeeld van successreactie (HTTP 2xx
):
{
"id": 1,
"username": "Gebruikersnaam",
"uuid": "00000000-0000-0000-0000-000000000000",
"email_verified": true,
"money": 100.0,
"role": {
"name": "Lid",
"color": "#e10d11"
},
"banned": false,
"created_at": "2020-06-29T17:39:12+00:00",
"access_token": "xxxxxxxx"
}
Voorbeeld van foutreactie (HTTP 4xx
):
{
"status": "fout",
"reason": "ongeldige-inloggegevens",
"message": "Ongeldige inloggegevens"
}
Uitloggen
POST /logout
Meld de gebruiker af en maakt het toegangstoken ongeldig.
Verzoek
Veld | Beschrijving |
---|---|
toegangstoken | Uniek toegangstoken |
Antwoord
Leeg antwoord, met statuscode 2xx
.