Login-API v2.0

Überblick

Der Abschnitt erläutert Methoden für die Nutzung des Login. Konfigurieren Sie das Login-Programm im Kundenportal, bevor Sie Anfragen senden.

Nutzen Sie Proxy-Anfragen, wenn Nutzerdaten bei Ihnen gespeichert sind.

Endpunktpfade: https://login.xsolla.com/api.

JWT-Validierung

Für jeden erfolgreich authentifizierten Benutzer wird ein mit dem geheimen Schlüssel signierter JWT erzeugt. Um sicherzustellen, dass der JWT weiterhin gültig und dem Benutzer in Ihrem Projekt zugeordnet ist, müssen Sie seinen Wert überprüfen.

So validieren Sie den JWT:

  1. Wählen Sie die Bibliothek aus und verknüpfen Sie diese mit Ihrer serverseitigen Anwendung.
  2. Kopieren Sie den Wert des geheimen Schlüssels. Sie finden ihn unter Kundenportal > Login-Einstellungen > Allgemeine Einstellungen > Geheimer Schlüssel.
  3. Fügen Sie den Wert des geheimen Schlüssels in die Validierungsfunktion ein.

Notice: Teilen Sie den geheimen Schlüssel nicht mit anderen. Aktualisieren Sie den Schlüssel, wenn er kompromittiert wurde.

Authentifizierung

Benutzer registrieren

Fügt einen neuen Benutzer zur Datenbank hinzu. Der Benutzer erhält eine Bestätigungsnachricht bezüglich des Kontos an die angegebene E-Mail-Adresse.

HTTP-ANFRAGE

POST https://login.xsolla.com/api/user?projectId={projectId}&login_url={login_url}

Parameter Typ Beschreibung
projectId
string Login-ID aus dem Kundenportal. Erforderlich.
login_url
string URL zur Generierung des Links mithilfe zusätzlicher Parameter und zu welcher der Benutzer nach der Kontobestätigung weitergeleitet wird. Muss mit der Rückruf-URL übereinstimmen, die im Kundenportal in den Login-Einstellungen festgelegt ist. Erforderlich, falls mehrere Rückruf-URLs vorhanden sind.
username
string Benutzername. Erforderlich.
password
string Passwort. Erforderlich.
email
string E-Mail. Erforderlich.
Copy
Full screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId={projectId}

Headers:
  Content-Type: application/json

Body:
  {
  "username": "John",
  "password": "password123",
  "email": "john-email@email.com"  
}
curl --request POST \
  --url 'https://login.xsolla.com/api/user?projectId={projectId}&login_url=https%3A%2F%2Fexample.com' \
  --header 'content-type: application/json' \
  --data '{"username":"John","password":"password123","email":"john-email@email.com"}'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{"username":"John","password":"password123","email":"john-email@email.com"}');

$request->setRequestUrl('https://login.xsolla.com/api/user');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setQuery(new http\QueryString(array(
  'projectId' => '{projectId}',
  'login_url' => 'https://example.com'
)));

$request->setHeaders(array(
  'content-type' => 'application/json'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://login.xsolla.com/api/user?projectId={projectId}&login_url=https%3A%2F%2Fexample.com");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"username\":\"John\",\"password\":\"password123\",\"email\":\"john-email@email.com\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("login.xsolla.com")

payload = "{\"username\":\"John\",\"password\":\"password123\",\"email\":\"john-email@email.com\"}"

headers = { 'content-type': "application/json" }

conn.request("POST", "/api/user?projectId={projectId}&login_url=https%3A%2F%2Fexample.com", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://login.xsolla.com/api/user?projectId={projectId}&login_url=https%3A%2F%2Fexample.com")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"username\":\"John\",\"password\":\"password123\",\"email\":\"john-email@email.com\"}"

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"username\":\"John\",\"password\":\"password123\",\"email\":\"john-email@email.com\"}");
Request request = new Request.Builder()
  .url("https://login.xsolla.com/api/user?projectId={projectId}&login_url=https%3A%2F%2Fexample.com")
  .post(body)
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
var data = JSON.stringify({
  "username": "John",
  "password": "password123",
  "email": "john-email@email.com"
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://login.xsolla.com/api/user?projectId={projectId}&login_url=https%3A%2F%2Fexample.com");
xhr.setRequestHeader("content-type", "application/json");

xhr.send(data);
Antwort

Authentifizierung mittels Benutzername und Passwort

Authentifiziert den Benutzer anhand des festgelegten Benutzernamens und Passworts.

Antwort: URL mit dem token und remember_me-Parametern, an die der Benutzer nach erfolgreicher Authentifizierung weitergeleitet wird.

HTTP-ANFRAGE

POST https://login.xsolla.com/api/login?projectId={projectId}&login_url={login_url}

Parameter Typ Beschreibung
projectId
string Login-ID aus dem Kundenportal. Erforderlich.
login_url
string URL zur Generierung des Links mithilfe zusätzlicher Parameter und zu welcher der Benutzer nach erfolgreicher Authentifizierung weitergeleitet wird. Muss mit der Rückruf-URL übereinstimmen, die im Kundenportal in den Login-Einstellungen festgelegt ist. Erforderlich, falls mehrere Rückruf-URLs vorhanden sind.
username
string Benutzername. Erforderlich.
password
string Passwort. Erforderlich.
remember_me
boolean Legt fest, ob der Benutzer der Speicherung seiner Authentifizierungsdaten zustimmen darf. Standardmäßig ist 'false' eingestellt.
Copy
Full screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
POST https://login.xsolla.com/api/login?login_url=https://example.com&projectId={projectId}

Headers:
  Content-Type: application/json

Body:
  {
  "username": "Jane",
  "password": "123456",
  "remember_me": true
}
curl --request POST \
  --url 'https://login.xsolla.com/api/login?projectId={projectId}&login_url=https%3A%2F%2Fexample.com' \
  --header 'content-type: application/json' \
  --data '{"username":"Jane","password":"123456","remember_me":true}'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{"username":"Jane","password":"123456","remember_me":true}');

$request->setRequestUrl('https://login.xsolla.com/api/login');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setQuery(new http\QueryString(array(
  'projectId' => '{projectId}',
  'login_url' => 'https://example.com'
)));

$request->setHeaders(array(
  'content-type' => 'application/json'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://login.xsolla.com/api/login?projectId={projectId}&login_url=https%3A%2F%2Fexample.com");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"username\":\"Jane\",\"password\":\"123456\",\"remember_me\":true}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("login.xsolla.com")

payload = "{\"username\":\"Jane\",\"password\":\"123456\",\"remember_me\":true}"

headers = { 'content-type': "application/json" }

conn.request("POST", "/api/login?projectId={projectId}&login_url=https%3A%2F%2Fexample.com", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://login.xsolla.com/api/login?projectId={projectId}&login_url=https%3A%2F%2Fexample.com")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"username\":\"Jane\",\"password\":\"123456\",\"remember_me\":true}"

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"username\":\"Jane\",\"password\":\"123456\",\"remember_me\":true}");
Request request = new Request.Builder()
  .url("https://login.xsolla.com/api/login?projectId={projectId}&login_url=https%3A%2F%2Fexample.com")
  .post(body)
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
var data = JSON.stringify({
  "username": "Jane",
  "password": "123456",
  "remember_me": true
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://login.xsolla.com/api/login?projectId={projectId}&login_url=https%3A%2F%2Fexample.com");
xhr.setRequestHeader("content-type", "application/json");

xhr.send(data);
Antwort
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg3NTcyODEsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4NjcwODgxLCJ1c2VybmFtZSI6IkphbmUiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InV0Nmt0alNNbDFja2ZKZVpLVkJJYlNuQTE5a1hWdDJwX1VGT1J2T2RlUjQiLCJzdWIiOiI2NjAwYTZhZS0yMmU2LTExZTktOTE0Yy00MjAxMGFhODAwMTciLCJlbWFpbCI6ImJvZ29mZUBvbmVjaXR5bWFpbC5jb20iLCJ0eXBlIjoieHNvbGxhX2xvZ2luIiwieHNvbGxhX2xvZ2luX3Byb2plY3RfaWQiOiI1MDkzYzliMy0xZDVlLTExZTktOTI0NC00MjAxMGFhODAwMDQiLCJwdWJsaXNoZXJfaWQiOjc5MDE3fQ.AZg1bPEZCNNd0oxskmwwoF6tKX3KXldX7uy_8a-jRZk&remember_me=true"
}
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg3NTcyODEsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4NjcwODgxLCJ1c2VybmFtZSI6IkphbmUiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InV0Nmt0alNNbDFja2ZKZVpLVkJJYlNuQTE5a1hWdDJwX1VGT1J2T2RlUjQiLCJzdWIiOiI2NjAwYTZhZS0yMmU2LTExZTktOTE0Yy00MjAxMGFhODAwMTciLCJlbWFpbCI6ImJvZ29mZUBvbmVjaXR5bWFpbC5jb20iLCJ0eXBlIjoieHNvbGxhX2xvZ2luIiwieHNvbGxhX2xvZ2luX3Byb2plY3RfaWQiOiI1MDkzYzliMy0xZDVlLTExZTktOTI0NC00MjAxMGFhODAwMDQiLCJwdWJsaXNoZXJfaWQiOjc5MDE3fQ.AZg1bPEZCNNd0oxskmwwoF6tKX3KXldX7uy_8a-jRZk&remember_me=true"
}
"login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg0MTE2NTcsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4MzI1MjU3LCJ1c2VybmFtZSI6ImdpbW9idSIsInhzb2xsYV9sb2dpbl9hY2Nlc3Nfa2V5IjoiLXIzQ1lZWHBkcGRrV3o0MUNuM1A2a1V4N1IwaDZneUlOSExqTE1zd2FScyIsInN1YiI6IjhhZmMzMTFlLTFkNjItMTFlOS05OWFkLTQyMDEwYWE4MDAyMSIsImVtYWlsIjoiZ2ltb2J1QG9uZWNpdHltYWlsLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6IjUwOTNjOWIzLTFkNWUtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6NzkwMTd9.PgB_vMhzUuXYkf1FY0vaI8a3HzrH5R3G-I6t3PpH_bM&remember_me=true"
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg3NTcyODEsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4NjcwODgxLCJ1c2VybmFtZSI6IkphbmUiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InV0Nmt0alNNbDFja2ZKZVpLVkJJYlNuQTE5a1hWdDJwX1VGT1J2T2RlUjQiLCJzdWIiOiI2NjAwYTZhZS0yMmU2LTExZTktOTE0Yy00MjAxMGFhODAwMTciLCJlbWFpbCI6ImJvZ29mZUBvbmVjaXR5bWFpbC5jb20iLCJ0eXBlIjoieHNvbGxhX2xvZ2luIiwieHNvbGxhX2xvZ2luX3Byb2plY3RfaWQiOiI1MDkzYzliMy0xZDVlLTExZTktOTI0NC00MjAxMGFhODAwMDQiLCJwdWJsaXNoZXJfaWQiOjc5MDE3fQ.AZg1bPEZCNNd0oxskmwwoF6tKX3KXldX7uy_8a-jRZk&remember_me=true"
}
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg3NTcyODEsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4NjcwODgxLCJ1c2VybmFtZSI6IkphbmUiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InV0Nmt0alNNbDFja2ZKZVpLVkJJYlNuQTE5a1hWdDJwX1VGT1J2T2RlUjQiLCJzdWIiOiI2NjAwYTZhZS0yMmU2LTExZTktOTE0Yy00MjAxMGFhODAwMTciLCJlbWFpbCI6ImJvZ29mZUBvbmVjaXR5bWFpbC5jb20iLCJ0eXBlIjoieHNvbGxhX2xvZ2luIiwieHNvbGxhX2xvZ2luX3Byb2plY3RfaWQiOiI1MDkzYzliMy0xZDVlLTExZTktOTI0NC00MjAxMGFhODAwMDQiLCJwdWJsaXNoZXJfaWQiOjc5MDE3fQ.AZg1bPEZCNNd0oxskmwwoF6tKX3KXldX7uy_8a-jRZk&remember_me=true"
}
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg3NTcyODEsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4NjcwODgxLCJ1c2VybmFtZSI6IkphbmUiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InV0Nmt0alNNbDFja2ZKZVpLVkJJYlNuQTE5a1hWdDJwX1VGT1J2T2RlUjQiLCJzdWIiOiI2NjAwYTZhZS0yMmU2LTExZTktOTE0Yy00MjAxMGFhODAwMTciLCJlbWFpbCI6ImJvZ29mZUBvbmVjaXR5bWFpbC5jb20iLCJ0eXBlIjoieHNvbGxhX2xvZ2luIiwieHNvbGxhX2xvZ2luX3Byb2plY3RfaWQiOiI1MDkzYzliMy0xZDVlLTExZTktOTI0NC00MjAxMGFhODAwMDQiLCJwdWJsaXNoZXJfaWQiOjc5MDE3fQ.AZg1bPEZCNNd0oxskmwwoF6tKX3KXldX7uy_8a-jRZk&remember_me=true"
}
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg3NTcyODEsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4NjcwODgxLCJ1c2VybmFtZSI6IkphbmUiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InV0Nmt0alNNbDFja2ZKZVpLVkJJYlNuQTE5a1hWdDJwX1VGT1J2T2RlUjQiLCJzdWIiOiI2NjAwYTZhZS0yMmU2LTExZTktOTE0Yy00MjAxMGFhODAwMTciLCJlbWFpbCI6ImJvZ29mZUBvbmVjaXR5bWFpbC5jb20iLCJ0eXBlIjoieHNvbGxhX2xvZ2luIiwieHNvbGxhX2xvZ2luX3Byb2plY3RfaWQiOiI1MDkzYzliMy0xZDVlLTExZTktOTI0NC00MjAxMGFhODAwMDQiLCJwdWJsaXNoZXJfaWQiOjc5MDE3fQ.AZg1bPEZCNNd0oxskmwwoF6tKX3KXldX7uy_8a-jRZk&remember_me=true"
}
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg3NTcyODEsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4NjcwODgxLCJ1c2VybmFtZSI6IkphbmUiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InV0Nmt0alNNbDFja2ZKZVpLVkJJYlNuQTE5a1hWdDJwX1VGT1J2T2RlUjQiLCJzdWIiOiI2NjAwYTZhZS0yMmU2LTExZTktOTE0Yy00MjAxMGFhODAwMTciLCJlbWFpbCI6ImJvZ29mZUBvbmVjaXR5bWFpbC5jb20iLCJ0eXBlIjoieHNvbGxhX2xvZ2luIiwieHNvbGxhX2xvZ2luX3Byb2plY3RfaWQiOiI1MDkzYzliMy0xZDVlLTExZTktOTI0NC00MjAxMGFhODAwMDQiLCJwdWJsaXNoZXJfaWQiOjc5MDE3fQ.AZg1bPEZCNNd0oxskmwwoF6tKX3KXldX7uy_8a-jRZk&remember_me=true"
}

Proxy-Authentifizierung

Proxy-Benutzerregistrierung

Fügt einen neuen Benutzer zur Datenbank hinzu. Leitet die Anfrage via Proxy zur, in den Login-Einstellungen im Kundenportal angegebenen URL für neue Benutzer weiter. Der Benutzer erhält eine Bestätigungsnachricht an die angegebene E-Mail-Adresse.

HTTP-ANFRAGE

POST https://login.xsolla.com/api/proxy/registration?projectId={projectId}&login_url={login_url}

Parameter Typ Beschreibung
projectId
string Login-ID aus dem Kundenportal. Erforderlich.
login_url
string URL zur Generierung des Links mithilfe zusätzlicher Parameter und zu welcher der Benutzer nach der Bestätigung der E-Mail-Adresse weitergeleitet wird. Muss mit der Rückruf-URL übereinstimmen, die im Kundenportal in den Login-Einstellungen festgelegt ist. Erforderlich, falls mehrere Rückruf-URLs vorhanden sind.
username
string Benutzername. Erforderlich.
password
string Passwort. Erforderlich.
email
string E-Mail. Erforderlich.
Copy
Full screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
POST https://login.xsolla.com/api/proxy/registration?login_url=https://example.com&projectId={projectId}

Headers:
  Content-Type: application/json

Body:
  {
  "password": "password123",
  "username": "Mike",
  "email": "mike-email@email.com"
}
curl --request POST \
  --url 'https://login.xsolla.com/api/proxy/registration?projectId={projectId}&login_url=https%3A%2F%2Fexample.com' \
  --header 'content-type: application/json' \
  --data '{"username":"Mike","password":"password123","email":"mike-email@email.com"}'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{"username":"Mike","password":"password123","email":"mike-email@email.com"}');

$request->setRequestUrl('https://login.xsolla.com/api/proxy/registration');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setQuery(new http\QueryString(array(
  'projectId' => '{projectId}',
  'login_url' => 'https://example.com'
)));

$request->setHeaders(array(
  'content-type' => 'application/json'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://login.xsolla.com/api/proxy/registration?projectId={projectId}&login_url=https%3A%2F%2Fexample.com");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"username\":\"Mike\",\"password\":\"password123\",\"email\":\"mike-email@email.com\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("login.xsolla.com")

payload = "{\"username\":\"Mike\",\"password\":\"password123\",\"email\":\"mike-email@email.com\"}"

headers = { 'content-type': "application/json" }

conn.request("POST", "/api/proxy/registration?projectId={projectId}&login_url=https%3A%2F%2Fexample.com", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://login.xsolla.com/api/proxy/registration?projectId={projectId}&login_url=https%3A%2F%2Fexample.com")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"username\":\"Mike\",\"password\":\"password123\",\"email\":\"mike-email@email.com\"}"

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"username\":\"Mike\",\"password\":\"password123\",\"email\":\"mike-email@email.com\"}");
Request request = new Request.Builder()
  .url("https://login.xsolla.com/api/proxy/registration?projectId={projectId}&login_url=https%3A%2F%2Fexample.com")
  .post(body)
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
var data = JSON.stringify({
  "username": "Mike",
  "password": "password123",
  "email": "mike-email@email.com"
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://login.xsolla.com/api/proxy/registration?projectId={projectId}&login_url=https%3A%2F%2Fexample.com");
xhr.setRequestHeader("content-type", "application/json");

xhr.send(data);
Antwort

Proxy-Authentifizierung mittels Benutzername und Passwort

Authentifiziert den Benutzer anhand des festgelegten Benutzernamens und Passworts. Leitet die Anfrage via Proxy zur, in den Login-Einstellungen im Kundenportal angegebenen URL zur Benutzerverifizierung weiter.

Antwort: URL mit dem token und remember_me-Parametern, an die der Benutzer nach erfolgreicher Authentifizierung weitergeleitet wird.

HTTP-ANFRAGE

POST https://login.xsolla.com/api/proxy/login?projectId={projectId}&login_url={login_url}

Parameter Typ Beschreibung
projectId
string Login-ID aus dem Kundenportal. Erforderlich.
login_url
string URL zur Generierung des Links mithilfe zusätzlicher Parameter und zu welcher der Benutzer nach erfolgreicher Authentifizierung weitergeleitet wird. Muss mit der Rückruf-URL übereinstimmen, die im Kundenportal in den Login-Einstellungen festgelegt ist. Erforderlich, falls mehrere Rückruf-URLs vorhanden sind.
username
string Benutzername. Erforderlich.
password
string Passwort. Erforderlich.
remember_me
boolean Legt fest, ob der Benutzer der Speicherung seiner Authentifizierungsdaten zustimmen darf. Standardmäßig ist 'false' eingestellt.
Copy
Full screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
POST https://login.xsolla.com/api/proxy/login?login_url=https://example.com&projectId={projectId}

Headers:
  Content-Type: application/json

Body:
  {
  "username": "John",
  "password": "123456",
  "remember_me": true
}
curl --request POST \
  --url 'https://login.xsolla.com/api/proxy/login?projectId={projectId}&login_url=https%3A%2F%2Fexample.com' \
  --header 'content-type: application/json' \
  --data '{"username":"John","password":"123456","remember_me":true}'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{"username":"John","password":"123456","remember_me":true}');

$request->setRequestUrl('https://login.xsolla.com/api/proxy/login');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setQuery(new http\QueryString(array(
  'projectId' => '{projectId}',
  'login_url' => 'https://example.com'
)));

$request->setHeaders(array(
  'content-type' => 'application/json'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://login.xsolla.com/api/proxy/login?projectId={projectId}&login_url=https%3A%2F%2Fexample.com");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"username\":\"John\",\"password\":\"123456\",\"remember_me\":true}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("login.xsolla.com")

payload = "{\"username\":\"John\",\"password\":\"123456\",\"remember_me\":true}"

headers = { 'content-type': "application/json" }

conn.request("POST", "/api/proxy/login?projectId={projectId}&login_url=https%3A%2F%2Fexample.com", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://login.xsolla.com/api/proxy/login?projectId={projectId}&login_url=https%3A%2F%2Fexample.com")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"username\":\"John\",\"password\":\"123456\",\"remember_me\":true}"

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"username\":\"John\",\"password\":\"123456\",\"remember_me\":true}");
Request request = new Request.Builder()
  .url("https://login.xsolla.com/api/proxy/login?projectId={projectId}&login_url=https%3A%2F%2Fexample.com")
  .post(body)
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
var data = JSON.stringify({
  "username": "John",
  "password": "123456",
  "remember_me": true
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://login.xsolla.com/api/proxy/login?projectId={projectId}&login_url=https%3A%2F%2Fexample.com");
xhr.setRequestHeader("content-type", "application/json");

xhr.send(data);
Antwort
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg0MjM5NDAsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4MzM3NTQwLCJ1c2VybmFtZSI6InJvc2F5ZW4iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InBEdkdNa1VoWGFkX3lqYVZ3UElWNzZSdHpsMVUydXhCUnB5RUgtQmlmcTAiLCJzdWIiOiI4ZWUyYmU1ZS0xZDY5LTExZTktYWI1OS00MjAxMGFhODAwMjEiLCJ0eXBlIjoicHJveHkiLCJwcm92aWRlciI6Inhzb2xsYSIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNTNkMjNhYzMtMWQ2Ni0xMWU5LTkyNDQtNDIwMTBhYTgwMDA0IiwiZW1haWwiOiJyb3NheWVuIiwicHVibGlzaGVyX2lkIjo3OTAxN30.NZxu3qDsLEuNV46TzIWw1eZS4Dznc7GPqGrVFeG1oCM&remember_me=true"
}
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg0MjM5NDAsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4MzM3NTQwLCJ1c2VybmFtZSI6InJvc2F5ZW4iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InBEdkdNa1VoWGFkX3lqYVZ3UElWNzZSdHpsMVUydXhCUnB5RUgtQmlmcTAiLCJzdWIiOiI4ZWUyYmU1ZS0xZDY5LTExZTktYWI1OS00MjAxMGFhODAwMjEiLCJ0eXBlIjoicHJveHkiLCJwcm92aWRlciI6Inhzb2xsYSIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNTNkMjNhYzMtMWQ2Ni0xMWU5LTkyNDQtNDIwMTBhYTgwMDA0IiwiZW1haWwiOiJyb3NheWVuIiwicHVibGlzaGVyX2lkIjo3OTAxN30.NZxu3qDsLEuNV46TzIWw1eZS4Dznc7GPqGrVFeG1oCM&remember_me=true"
}
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg0MjM5NDAsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4MzM3NTQwLCJ1c2VybmFtZSI6InJvc2F5ZW4iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InBEdkdNa1VoWGFkX3lqYVZ3UElWNzZSdHpsMVUydXhCUnB5RUgtQmlmcTAiLCJzdWIiOiI4ZWUyYmU1ZS0xZDY5LTExZTktYWI1OS00MjAxMGFhODAwMjEiLCJ0eXBlIjoicHJveHkiLCJwcm92aWRlciI6Inhzb2xsYSIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNTNkMjNhYzMtMWQ2Ni0xMWU5LTkyNDQtNDIwMTBhYTgwMDA0IiwiZW1haWwiOiJyb3NheWVuIiwicHVibGlzaGVyX2lkIjo3OTAxN30.NZxu3qDsLEuNV46TzIWw1eZS4Dznc7GPqGrVFeG1oCM&remember_me=true"
}
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg0MjM5NDAsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4MzM3NTQwLCJ1c2VybmFtZSI6InJvc2F5ZW4iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InBEdkdNa1VoWGFkX3lqYVZ3UElWNzZSdHpsMVUydXhCUnB5RUgtQmlmcTAiLCJzdWIiOiI4ZWUyYmU1ZS0xZDY5LTExZTktYWI1OS00MjAxMGFhODAwMjEiLCJ0eXBlIjoicHJveHkiLCJwcm92aWRlciI6Inhzb2xsYSIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNTNkMjNhYzMtMWQ2Ni0xMWU5LTkyNDQtNDIwMTBhYTgwMDA0IiwiZW1haWwiOiJyb3NheWVuIiwicHVibGlzaGVyX2lkIjo3OTAxN30.NZxu3qDsLEuNV46TzIWw1eZS4Dznc7GPqGrVFeG1oCM&remember_me=true"
}
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg0MjM5NDAsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4MzM3NTQwLCJ1c2VybmFtZSI6InJvc2F5ZW4iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InBEdkdNa1VoWGFkX3lqYVZ3UElWNzZSdHpsMVUydXhCUnB5RUgtQmlmcTAiLCJzdWIiOiI4ZWUyYmU1ZS0xZDY5LTExZTktYWI1OS00MjAxMGFhODAwMjEiLCJ0eXBlIjoicHJveHkiLCJwcm92aWRlciI6Inhzb2xsYSIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNTNkMjNhYzMtMWQ2Ni0xMWU5LTkyNDQtNDIwMTBhYTgwMDA0IiwiZW1haWwiOiJyb3NheWVuIiwicHVibGlzaGVyX2lkIjo3OTAxN30.NZxu3qDsLEuNV46TzIWw1eZS4Dznc7GPqGrVFeG1oCM&remember_me=true"
}
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg0MjM5NDAsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4MzM3NTQwLCJ1c2VybmFtZSI6InJvc2F5ZW4iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InBEdkdNa1VoWGFkX3lqYVZ3UElWNzZSdHpsMVUydXhCUnB5RUgtQmlmcTAiLCJzdWIiOiI4ZWUyYmU1ZS0xZDY5LTExZTktYWI1OS00MjAxMGFhODAwMjEiLCJ0eXBlIjoicHJveHkiLCJwcm92aWRlciI6Inhzb2xsYSIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNTNkMjNhYzMtMWQ2Ni0xMWU5LTkyNDQtNDIwMTBhYTgwMDA0IiwiZW1haWwiOiJyb3NheWVuIiwicHVibGlzaGVyX2lkIjo3OTAxN30.NZxu3qDsLEuNV46TzIWw1eZS4Dznc7GPqGrVFeG1oCM&remember_me=true"
}
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg0MjM5NDAsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4MzM3NTQwLCJ1c2VybmFtZSI6InJvc2F5ZW4iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InBEdkdNa1VoWGFkX3lqYVZ3UElWNzZSdHpsMVUydXhCUnB5RUgtQmlmcTAiLCJzdWIiOiI4ZWUyYmU1ZS0xZDY5LTExZTktYWI1OS00MjAxMGFhODAwMjEiLCJ0eXBlIjoicHJveHkiLCJwcm92aWRlciI6Inhzb2xsYSIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNTNkMjNhYzMtMWQ2Ni0xMWU5LTkyNDQtNDIwMTBhYTgwMDA0IiwiZW1haWwiOiJyb3NheWVuIiwicHVibGlzaGVyX2lkIjo3OTAxN30.NZxu3qDsLEuNV46TzIWw1eZS4Dznc7GPqGrVFeG1oCM&remember_me=true"
}
{
  "login_url": "https://example.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NDg0MjM5NDAsImlzcyI6Imh0dHBzOlwvXC9sb2dpbi54c29sbGEuY29tIiwiaWF0IjoxNTQ4MzM3NTQwLCJ1c2VybmFtZSI6InJvc2F5ZW4iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6InBEdkdNa1VoWGFkX3lqYVZ3UElWNzZSdHpsMVUydXhCUnB5RUgtQmlmcTAiLCJzdWIiOiI4ZWUyYmU1ZS0xZDY5LTExZTktYWI1OS00MjAxMGFhODAwMjEiLCJ0eXBlIjoicHJveHkiLCJwcm92aWRlciI6Inhzb2xsYSIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNTNkMjNhYzMtMWQ2Ni0xMWU5LTkyNDQtNDIwMTBhYTgwMDA0IiwiZW1haWwiOiJyb3NheWVuIiwicHVibGlzaGVyX2lkIjo3OTAxN30.NZxu3qDsLEuNV46TzIWw1eZS4Dznc7GPqGrVFeG1oCM&remember_me=true"
}

Benutzerpasswort zurücksetzen mittels Proxy

Setzt das Passwort des Benutzers zurück. Leitet die Anfrage via Proxy zur, in den Login-Einstellungen im Kundenportal angegebenen URL für das Zurücksetzen des Passworts weiter.

HTTP-ANFRAGE

POST https://login.xsolla.com/api/proxy/password/reset?projectId={projectId}&login_url={login_url}

Parameter Typ Beschreibung
projectId
string Login-ID aus dem Kundenportal. Erforderlich.
login_url
string URL zur Generierung des Links mithilfe zusätzlicher Parameter und zu welcher der Benutzer nach der Bestätigung der Passwortzurücksetzung weitergeleitet wird. Muss mit der Rückruf-URL übereinstimmen, die im Kundenportal in den Login-Einstellungen festgelegt ist. Erforderlich, falls mehrere Rückruf-URLs vorhanden sind.
email
string E-Mail. Erforderlich.
Copy
Full screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
POST https://login.xsolla.com/api/proxy/password/reset?login_url=https://example.com&projectId={projectId}

Headers:
  Content-Type: application/json

Body:
  {
  "email": "brooke-email@email.com"
}
curl --request POST \
  --url 'https://login.xsolla.com/api/proxy/password/reset?projectId={projectId}&login_url=https%3A%2F%2Fexample.com' \
  --header 'content-type: application/json' \
  --data '{"email":"brooke-email@email.com"}'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{"email":"brooke-email@email.com"}');

$request->setRequestUrl('https://login.xsolla.com/api/proxy/password/reset');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setQuery(new http\QueryString(array(
  'projectId' => '{projectId}',
  'login_url' => 'https://example.com'
)));

$request->setHeaders(array(
  'content-type' => 'application/json'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://login.xsolla.com/api/proxy/password/reset?projectId={projectId}&login_url=https%3A%2F%2Fexample.com");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"email\":\"brooke-email@email.com\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("login.xsolla.com")

payload = "{\"email\":\"brooke-email@email.com\"}"

headers = { 'content-type': "application/json" }

conn.request("POST", "/api/proxy/password/reset?projectId={projectId}&login_url=https%3A%2F%2Fexample.com", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://login.xsolla.com/api/proxy/password/reset?projectId={projectId}&login_url=https%3A%2F%2Fexample.com")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"email\":\"brooke-email@email.com\"}"

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"email\":\"brooke-email@email.com\"}");
Request request = new Request.Builder()
  .url("https://login.xsolla.com/api/proxy/password/reset?projectId={projectId}&login_url=https%3A%2F%2Fexample.com")
  .post(body)
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
var data = JSON.stringify({
  "email": "brooke-email@email.com"
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://login.xsolla.com/api/proxy/password/reset?projectId={projectId}&login_url=https%3A%2F%2Fexample.com");
xhr.setRequestHeader("content-type", "application/json");

xhr.send(data);
Antwort

Social-Media-Authentifizierung

Ruft Links zur Authentifizierung über alle sozialen Netzwerke ab, die mit dem Login im Kundenportal verknüpft sind.

Antwort: URLs, welche in der Login-Benutzeroberfläche für die Schaltflächen der sozialen Netzwerke genutzt werden können.

HTTP-ANFRAGE

GET https://login.xsolla.com/api/social/login_urls?projectId={projectId}&fields={fields}&login_url={login_url}

Parameter Typ Beschreibung
string Login-ID aus dem Kundenportal. Erforderlich.
array of strings Liste der Parameter, die für eine erfolgreiche Benutzerregistrierung/-authentifizierung erforderlich sind. Beispiel: "email, promo_email_agreement". Der Benutzer wird aufgefordert, diese Parameter in der entsprechenden Form anzugeben.
string URL zur Generierung der Links für die Authentifizierung über soziale Netzwerke. Muss mit der Rückruf-URL übereinstimmen, die im Kundenportal in den Login-Einstellungen festgelegt ist. Erforderlich, falls mehrere Rückruf-URLs vorhanden sind.
Copy
Full screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
GET https://login.xsolla.com/api/social/login_urls?fields=email&login_url=https://example.com&projectId={projectId}
curl --request GET \
  --url 'https://login.xsolla.com/api/social/login_urls?projectId={projectId}&fields=email&login_url=https%3A%2F%2Fexample.com'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$request->setRequestUrl('https://login.xsolla.com/api/social/login_urls');
$request->setRequestMethod('GET');
$request->setQuery(new http\QueryString(array(
  'projectId' => '{projectId}',
  'fields' => 'email',
  'login_url' => 'https://example.com'
)));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://login.xsolla.com/api/social/login_urls?projectId={projectId}&fields=email&login_url=https%3A%2F%2Fexample.com");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("login.xsolla.com")

conn.request("GET", "/api/social/login_urls?projectId={projectId}&fields=email&login_url=https%3A%2F%2Fexample.com")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://login.xsolla.com/api/social/login_urls?projectId={projectId}&fields=email&login_url=https%3A%2F%2Fexample.com")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://login.xsolla.com/api/social/login_urls?projectId={projectId}&fields=email&login_url=https%3A%2F%2Fexample.com")
  .get()
  .build();

Response response = client.newCall(request).execute();
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://login.xsolla.com/api/social/login_urls?projectId={projectId}&fields=email&login_url=https%3A%2F%2Fexample.com");

xhr.send(data);
Antwort
{
  "amazon": "https://example.com/api/social/amazon/login_redirect?projectId={projectId}&fields=email",
  "baidu": "https://example.com/api/social/baidu/login_redirect?projectId={projectId}&fields=email",
  "battlenet": "https://example.com/api/social/battlenet/login_redirect?projectId={projectId}&fields=email",
  "china_telecom": "https://example.com/api/social/china_telecom/login_redirect?projectId={projectId}&fields=email",
  "discord": "https://example.com/api/social/discord/login_redirect?projectId={projectId}&fields=email",
  "facebook": "https://example.com/api/social/facebook/login_redirect?projectId={projectId}&fields=email",
  "github": "https://example.com/api/social/github/login_redirect?projectId={projectId}&fields=email",
  "google": "https://example.com/api/social/google/login_redirect?projectId={projectId}&fields=email",
  "google+": "https://example.com/api/social/google+/login_redirect?projectId={projectId}&fields=email",
  "instagram": "https://example.com/api/social/instagram/login_redirect?projectId={projectId}&fields=email",
  "kakao": "https://example.com/api/social/kakao/login_redirect?projectId={projectId}&fields=email",
  "linkedin": "https://example.com/api/social/linkedin/login_redirect?projectId={projectId}&fields=email",
  "mailru": "https://example.com/api/social/mailru/login_redirect?projectId={projectId}&fields=email",
  "microsoft": "https://example.com/api/social/microsoft/login_redirect?projectId={projectId}&fields=email",
  "msn": "https://example.com/api/social/msn/login_redirect?projectId={projectId}&fields=email",
  "naver": "https://example.com/api/social/naver/login_redirect?projectId={projectId}&fields=email",
  "ok": "https://example.com/api/social/ok/login_redirect?projectId={projectId}&fields=email",
  "paypal": "https://example.com/api/social/paypal/login_redirect?projectId={projectId}&fields=email",
  "pinterest": "https://example.com/api/social/pinterest/login_redirect?projectId={projectId}&fields=email",
  "qq": "https://example.com/api/social/qq/login_redirect?projectId={projectId}&fields=email",
  "reddit": "https://example.com/api/social/reddit/login_redirect?projectId={projectId}&fields=email",
  "steam": "https://example.com/api/social/steam/login_redirect?projectId={projectId}&fields=email",
  "twitch": "https://example.com/api/social/twitch/login_redirect?projectId={projectId}&fields=email",
  "twitter": "https://example.com/api/social/twitter/login_redirect?projectId={projectId}&fields=email",
  "vimeo": "https://example.com/api/social/vimeo/login_redirect?projectId={projectId}&fields=email",
  "vk": "https://example.com/api/social/vk/login_redirect?projectId={projectId}&fields=email",
  "wechat": "https://example.com/api/social/wechat/login_redirect?projectId={projectId}&fields=email",
  "weibo": "https://example.com/api/social/weibo/login_redirect?projectId={projectId}&fields=email",
  "yahoo": "https://example.com/api/social/yahoo/login_redirect?projectId={projectId}&fields=email",
  "yandex": "https://example.com/api/social/yandex/login_redirect?projectId={projectId}&fields=email",
  "youtube": "https://example.com/api/social/youtube/login_redirect?projectId={projectId}&fields=email"
}
{
  "amazon": "https://example.com/api/social/amazon/login_redirect?projectId={projectId}&fields=email",
  "baidu": "https://example.com/api/social/baidu/login_redirect?projectId={projectId}&fields=email",
  "battlenet": "https://example.com/api/social/battlenet/login_redirect?projectId={projectId}&fields=email",
  "china_telecom": "https://example.com/api/social/china_telecom/login_redirect?projectId={projectId}&fields=email",
  "discord": "https://example.com/api/social/discord/login_redirect?projectId={projectId}&fields=email",
  "facebook": "https://example.com/api/social/facebook/login_redirect?projectId={projectId}&fields=email",
  "github": "https://example.com/api/social/github/login_redirect?projectId={projectId}&fields=email",
  "google": "https://example.com/api/social/google/login_redirect?projectId={projectId}&fields=email",
  "google+": "https://example.com/api/social/google+/login_redirect?projectId={projectId}&fields=email",
  "instagram": "https://example.com/api/social/instagram/login_redirect?projectId={projectId}&fields=email",
  "kakao": "https://example.com/api/social/kakao/login_redirect?projectId={projectId}&fields=email",
  "linkedin": "https://example.com/api/social/linkedin/login_redirect?projectId={projectId}&fields=email",
  "mailru": "https://example.com/api/social/mailru/login_redirect?projectId={projectId}&fields=email",
  "microsoft": "https://example.com/api/social/microsoft/login_redirect?projectId={projectId}&fields=email",
  "msn": "https://example.com/api/social/msn/login_redirect?projectId={projectId}&fields=email",
  "naver": "https://example.com/api/social/naver/login_redirect?projectId={projectId}&fields=email",
  "ok": "https://example.com/api/social/ok/login_redirect?projectId={projectId}&fields=email",
  "paypal": "https://example.com/api/social/paypal/login_redirect?projectId={projectId}&fields=email",
  "pinterest": "https://example.com/api/social/pinterest/login_redirect?projectId={projectId}&fields=email",
  "qq": "https://example.com/api/social/qq/login_redirect?projectId={projectId}&fields=email",
  "reddit": "https://example.com/api/social/reddit/login_redirect?projectId={projectId}&fields=email",
  "steam": "https://example.com/api/social/steam/login_redirect?projectId={projectId}&fields=email",
  "twitch": "https://example.com/api/social/twitch/login_redirect?projectId={projectId}&fields=email",
  "twitter": "https://example.com/api/social/twitter/login_redirect?projectId={projectId}&fields=email",
  "vimeo": "https://example.com/api/social/vimeo/login_redirect?projectId={projectId}&fields=email",
  "vk": "https://example.com/api/social/vk/login_redirect?projectId={projectId}&fields=email",
  "wechat": "https://example.com/api/social/wechat/login_redirect?projectId={projectId}&fields=email",
  "weibo": "https://example.com/api/social/weibo/login_redirect?projectId={projectId}&fields=email",
  "yahoo": "https://example.com/api/social/yahoo/login_redirect?projectId={projectId}&fields=email",
  "yandex": "https://example.com/api/social/yandex/login_redirect?projectId={projectId}&fields=email",
  "youtube": "https://example.com/api/social/youtube/login_redirect?projectId={projectId}&fields=email"
}
{
  "amazon": "https://example.com/api/social/amazon/login_redirect?projectId={projectId}&fields=email",
  "baidu": "https://example.com/api/social/baidu/login_redirect?projectId={projectId}&fields=email",
  "battlenet": "https://example.com/api/social/battlenet/login_redirect?projectId={projectId}&fields=email",
  "china_telecom": "https://example.com/api/social/china_telecom/login_redirect?projectId={projectId}&fields=email",
  "discord": "https://example.com/api/social/discord/login_redirect?projectId={projectId}&fields=email",
  "facebook": "https://example.com/api/social/facebook/login_redirect?projectId={projectId}&fields=email",
  "github": "https://example.com/api/social/github/login_redirect?projectId={projectId}&fields=email",
  "google": "https://example.com/api/social/google/login_redirect?projectId={projectId}&fields=email",
  "google+": "https://example.com/api/social/google+/login_redirect?projectId={projectId}&fields=email",
  "instagram": "https://example.com/api/social/instagram/login_redirect?projectId={projectId}&fields=email",
  "kakao": "https://example.com/api/social/kakao/login_redirect?projectId={projectId}&fields=email",
  "linkedin": "https://example.com/api/social/linkedin/login_redirect?projectId={projectId}&fields=email",
  "mailru": "https://example.com/api/social/mailru/login_redirect?projectId={projectId}&fields=email",
  "microsoft": "https://example.com/api/social/microsoft/login_redirect?projectId={projectId}&fields=email",
  "msn": "https://example.com/api/social/msn/login_redirect?projectId={projectId}&fields=email",
  "naver": "https://example.com/api/social/naver/login_redirect?projectId={projectId}&fields=email",
  "ok": "https://example.com/api/social/ok/login_redirect?projectId={projectId}&fields=email",
  "paypal": "https://example.com/api/social/paypal/login_redirect?projectId={projectId}&fields=email",
  "pinterest": "https://example.com/api/social/pinterest/login_redirect?projectId={projectId}&fields=email",
  "qq": "https://example.com/api/social/qq/login_redirect?projectId={projectId}&fields=email",
  "reddit": "https://example.com/api/social/reddit/login_redirect?projectId={projectId}&fields=email",
  "steam": "https://example.com/api/social/steam/login_redirect?projectId={projectId}&fields=email",
  "twitch": "https://example.com/api/social/twitch/login_redirect?projectId={projectId}&fields=email",
  "twitter": "https://example.com/api/social/twitter/login_redirect?projectId={projectId}&fields=email",
  "vimeo": "https://example.com/api/social/vimeo/login_redirect?projectId={projectId}&fields=email",
  "vk": "https://example.com/api/social/vk/login_redirect?projectId={projectId}&fields=email",
  "wechat": "https://example.com/api/social/wechat/login_redirect?projectId={projectId}&fields=email",
  "weibo": "https://example.com/api/social/weibo/login_redirect?projectId={projectId}&fields=email",
  "yahoo": "https://example.com/api/social/yahoo/login_redirect?projectId={projectId}&fields=email",
  "yandex": "https://example.com/api/social/yandex/login_redirect?projectId={projectId}&fields=email",
  "youtube": "https://example.com/api/social/youtube/login_redirect?projectId={projectId}&fields=email"
}
{
  "amazon": "https://example.com/api/social/amazon/login_redirect?projectId={projectId}&fields=email",
  "baidu": "https://example.com/api/social/baidu/login_redirect?projectId={projectId}&fields=email",
  "battlenet": "https://example.com/api/social/battlenet/login_redirect?projectId={projectId}&fields=email",
  "china_telecom": "https://example.com/api/social/china_telecom/login_redirect?projectId={projectId}&fields=email",
  "discord": "https://example.com/api/social/discord/login_redirect?projectId={projectId}&fields=email",
  "facebook": "https://example.com/api/social/facebook/login_redirect?projectId={projectId}&fields=email",
  "github": "https://example.com/api/social/github/login_redirect?projectId={projectId}&fields=email",
  "google": "https://example.com/api/social/google/login_redirect?projectId={projectId}&fields=email",
  "google+": "https://example.com/api/social/google+/login_redirect?projectId={projectId}&fields=email",
  "instagram": "https://example.com/api/social/instagram/login_redirect?projectId={projectId}&fields=email",
  "kakao": "https://example.com/api/social/kakao/login_redirect?projectId={projectId}&fields=email",
  "linkedin": "https://example.com/api/social/linkedin/login_redirect?projectId={projectId}&fields=email",
  "mailru": "https://example.com/api/social/mailru/login_redirect?projectId={projectId}&fields=email",
  "microsoft": "https://example.com/api/social/microsoft/login_redirect?projectId={projectId}&fields=email",
  "msn": "https://example.com/api/social/msn/login_redirect?projectId={projectId}&fields=email",
  "naver": "https://example.com/api/social/naver/login_redirect?projectId={projectId}&fields=email",
  "ok": "https://example.com/api/social/ok/login_redirect?projectId={projectId}&fields=email",
  "paypal": "https://example.com/api/social/paypal/login_redirect?projectId={projectId}&fields=email",
  "pinterest": "https://example.com/api/social/pinterest/login_redirect?projectId={projectId}&fields=email",
  "qq": "https://example.com/api/social/qq/login_redirect?projectId={projectId}&fields=email",
  "reddit": "https://example.com/api/social/reddit/login_redirect?projectId={projectId}&fields=email",
  "steam": "https://example.com/api/social/steam/login_redirect?projectId={projectId}&fields=email",
  "twitch": "https://example.com/api/social/twitch/login_redirect?projectId={projectId}&fields=email",
  "twitter": "https://example.com/api/social/twitter/login_redirect?projectId={projectId}&fields=email",
  "vimeo": "https://example.com/api/social/vimeo/login_redirect?projectId={projectId}&fields=email",
  "vk": "https://example.com/api/social/vk/login_redirect?projectId={projectId}&fields=email",
  "wechat": "https://example.com/api/social/wechat/login_redirect?projectId={projectId}&fields=email",
  "weibo": "https://example.com/api/social/weibo/login_redirect?projectId={projectId}&fields=email",
  "yahoo": "https://example.com/api/social/yahoo/login_redirect?projectId={projectId}&fields=email",
  "yandex": "https://example.com/api/social/yandex/login_redirect?projectId={projectId}&fields=email",
  "youtube": "https://example.com/api/social/youtube/login_redirect?projectId={projectId}&fields=email"
}
{
  "amazon": "https://example.com/api/social/amazon/login_redirect?projectId={projectId}&fields=email",
  "baidu": "https://example.com/api/social/baidu/login_redirect?projectId={projectId}&fields=email",
  "battlenet": "https://example.com/api/social/battlenet/login_redirect?projectId={projectId}&fields=email",
  "china_telecom": "https://example.com/api/social/china_telecom/login_redirect?projectId={projectId}&fields=email",
  "discord": "https://example.com/api/social/discord/login_redirect?projectId={projectId}&fields=email",
  "facebook": "https://example.com/api/social/facebook/login_redirect?projectId={projectId}&fields=email",
  "github": "https://example.com/api/social/github/login_redirect?projectId={projectId}&fields=email",
  "google": "https://example.com/api/social/google/login_redirect?projectId={projectId}&fields=email",
  "google+": "https://example.com/api/social/google+/login_redirect?projectId={projectId}&fields=email",
  "instagram": "https://example.com/api/social/instagram/login_redirect?projectId={projectId}&fields=email",
  "kakao": "https://example.com/api/social/kakao/login_redirect?projectId={projectId}&fields=email",
  "linkedin": "https://example.com/api/social/linkedin/login_redirect?projectId={projectId}&fields=email",
  "mailru": "https://example.com/api/social/mailru/login_redirect?projectId={projectId}&fields=email",
  "microsoft": "https://example.com/api/social/microsoft/login_redirect?projectId={projectId}&fields=email",
  "msn": "https://example.com/api/social/msn/login_redirect?projectId={projectId}&fields=email",
  "naver": "https://example.com/api/social/naver/login_redirect?projectId={projectId}&fields=email",
  "ok": "https://example.com/api/social/ok/login_redirect?projectId={projectId}&fields=email",
  "paypal": "https://example.com/api/social/paypal/login_redirect?projectId={projectId}&fields=email",
  "pinterest": "https://example.com/api/social/pinterest/login_redirect?projectId={projectId}&fields=email",
  "qq": "https://example.com/api/social/qq/login_redirect?projectId={projectId}&fields=email",
  "reddit": "https://example.com/api/social/reddit/login_redirect?projectId={projectId}&fields=email",
  "steam": "https://example.com/api/social/steam/login_redirect?projectId={projectId}&fields=email",
  "twitch": "https://example.com/api/social/twitch/login_redirect?projectId={projectId}&fields=email",
  "twitter": "https://example.com/api/social/twitter/login_redirect?projectId={projectId}&fields=email",
  "vimeo": "https://example.com/api/social/vimeo/login_redirect?projectId={projectId}&fields=email",
  "vk": "https://example.com/api/social/vk/login_redirect?projectId={projectId}&fields=email",
  "wechat": "https://example.com/api/social/wechat/login_redirect?projectId={projectId}&fields=email",
  "weibo": "https://example.com/api/social/weibo/login_redirect?projectId={projectId}&fields=email",
  "yahoo": "https://example.com/api/social/yahoo/login_redirect?projectId={projectId}&fields=email",
  "yandex": "https://example.com/api/social/yandex/login_redirect?projectId={projectId}&fields=email",
  "youtube": "https://example.com/api/social/youtube/login_redirect?projectId={projectId}&fields=email"
}
{
  "amazon": "https://example.com/api/social/amazon/login_redirect?projectId={projectId}&fields=email",
  "baidu": "https://example.com/api/social/baidu/login_redirect?projectId={projectId}&fields=email",
  "battlenet": "https://example.com/api/social/battlenet/login_redirect?projectId={projectId}&fields=email",
  "china_telecom": "https://example.com/api/social/china_telecom/login_redirect?projectId={projectId}&fields=email",
  "discord": "https://example.com/api/social/discord/login_redirect?projectId={projectId}&fields=email",
  "facebook": "https://example.com/api/social/facebook/login_redirect?projectId={projectId}&fields=email",
  "github": "https://example.com/api/social/github/login_redirect?projectId={projectId}&fields=email",
  "google": "https://example.com/api/social/google/login_redirect?projectId={projectId}&fields=email",
  "google+": "https://example.com/api/social/google+/login_redirect?projectId={projectId}&fields=email",
  "instagram": "https://example.com/api/social/instagram/login_redirect?projectId={projectId}&fields=email",
  "kakao": "https://example.com/api/social/kakao/login_redirect?projectId={projectId}&fields=email",
  "linkedin": "https://example.com/api/social/linkedin/login_redirect?projectId={projectId}&fields=email",
  "mailru": "https://example.com/api/social/mailru/login_redirect?projectId={projectId}&fields=email",
  "microsoft": "https://example.com/api/social/microsoft/login_redirect?projectId={projectId}&fields=email",
  "msn": "https://example.com/api/social/msn/login_redirect?projectId={projectId}&fields=email",
  "naver": "https://example.com/api/social/naver/login_redirect?projectId={projectId}&fields=email",
  "ok": "https://example.com/api/social/ok/login_redirect?projectId={projectId}&fields=email",
  "paypal": "https://example.com/api/social/paypal/login_redirect?projectId={projectId}&fields=email",
  "pinterest": "https://example.com/api/social/pinterest/login_redirect?projectId={projectId}&fields=email",
  "qq": "https://example.com/api/social/qq/login_redirect?projectId={projectId}&fields=email",
  "reddit": "https://example.com/api/social/reddit/login_redirect?projectId={projectId}&fields=email",
  "steam": "https://example.com/api/social/steam/login_redirect?projectId={projectId}&fields=email",
  "twitch": "https://example.com/api/social/twitch/login_redirect?projectId={projectId}&fields=email",
  "twitter": "https://example.com/api/social/twitter/login_redirect?projectId={projectId}&fields=email",
  "vimeo": "https://example.com/api/social/vimeo/login_redirect?projectId={projectId}&fields=email",
  "vk": "https://example.com/api/social/vk/login_redirect?projectId={projectId}&fields=email",
  "wechat": "https://example.com/api/social/wechat/login_redirect?projectId={projectId}&fields=email",
  "weibo": "https://example.com/api/social/weibo/login_redirect?projectId={projectId}&fields=email",
  "yahoo": "https://example.com/api/social/yahoo/login_redirect?projectId={projectId}&fields=email",
  "yandex": "https://example.com/api/social/yandex/login_redirect?projectId={projectId}&fields=email",
  "youtube": "https://example.com/api/social/youtube/login_redirect?projectId={projectId}&fields=email"
}
{
  "amazon": "https://example.com/api/social/amazon/login_redirect?projectId={projectId}&fields=email",
  "baidu": "https://example.com/api/social/baidu/login_redirect?projectId={projectId}&fields=email",
  "battlenet": "https://example.com/api/social/battlenet/login_redirect?projectId={projectId}&fields=email",
  "china_telecom": "https://example.com/api/social/china_telecom/login_redirect?projectId={projectId}&fields=email",
  "discord": "https://example.com/api/social/discord/login_redirect?projectId={projectId}&fields=email",
  "facebook": "https://example.com/api/social/facebook/login_redirect?projectId={projectId}&fields=email",
  "github": "https://example.com/api/social/github/login_redirect?projectId={projectId}&fields=email",
  "google": "https://example.com/api/social/google/login_redirect?projectId={projectId}&fields=email",
  "google+": "https://example.com/api/social/google+/login_redirect?projectId={projectId}&fields=email",
  "instagram": "https://example.com/api/social/instagram/login_redirect?projectId={projectId}&fields=email",
  "kakao": "https://example.com/api/social/kakao/login_redirect?projectId={projectId}&fields=email",
  "linkedin": "https://example.com/api/social/linkedin/login_redirect?projectId={projectId}&fields=email",
  "mailru": "https://example.com/api/social/mailru/login_redirect?projectId={projectId}&fields=email",
  "microsoft": "https://example.com/api/social/microsoft/login_redirect?projectId={projectId}&fields=email",
  "msn": "https://example.com/api/social/msn/login_redirect?projectId={projectId}&fields=email",
  "naver": "https://example.com/api/social/naver/login_redirect?projectId={projectId}&fields=email",
  "ok": "https://example.com/api/social/ok/login_redirect?projectId={projectId}&fields=email",
  "paypal": "https://example.com/api/social/paypal/login_redirect?projectId={projectId}&fields=email",
  "pinterest": "https://example.com/api/social/pinterest/login_redirect?projectId={projectId}&fields=email",
  "qq": "https://example.com/api/social/qq/login_redirect?projectId={projectId}&fields=email",
  "reddit": "https://example.com/api/social/reddit/login_redirect?projectId={projectId}&fields=email",
  "steam": "https://example.com/api/social/steam/login_redirect?projectId={projectId}&fields=email",
  "twitch": "https://example.com/api/social/twitch/login_redirect?projectId={projectId}&fields=email",
  "twitter": "https://example.com/api/social/twitter/login_redirect?projectId={projectId}&fields=email",
  "vimeo": "https://example.com/api/social/vimeo/login_redirect?projectId={projectId}&fields=email",
  "vk": "https://example.com/api/social/vk/login_redirect?projectId={projectId}&fields=email",
  "wechat": "https://example.com/api/social/wechat/login_redirect?projectId={projectId}&fields=email",
  "weibo": "https://example.com/api/social/weibo/login_redirect?projectId={projectId}&fields=email",
  "yahoo": "https://example.com/api/social/yahoo/login_redirect?projectId={projectId}&fields=email",
  "yandex": "https://example.com/api/social/yandex/login_redirect?projectId={projectId}&fields=email",
  "youtube": "https://example.com/api/social/youtube/login_redirect?projectId={projectId}&fields=email"
}
{
  "amazon": "https://example.com/api/social/amazon/login_redirect?projectId={projectId}&fields=email",
  "baidu": "https://example.com/api/social/baidu/login_redirect?projectId={projectId}&fields=email",
  "battlenet": "https://example.com/api/social/battlenet/login_redirect?projectId={projectId}&fields=email",
  "china_telecom": "https://example.com/api/social/china_telecom/login_redirect?projectId={projectId}&fields=email",
  "discord": "https://example.com/api/social/discord/login_redirect?projectId={projectId}&fields=email",
  "facebook": "https://example.com/api/social/facebook/login_redirect?projectId={projectId}&fields=email",
  "github": "https://example.com/api/social/github/login_redirect?projectId={projectId}&fields=email",
  "google": "https://example.com/api/social/google/login_redirect?projectId={projectId}&fields=email",
  "google+": "https://example.com/api/social/google+/login_redirect?projectId={projectId}&fields=email",
  "instagram": "https://example.com/api/social/instagram/login_redirect?projectId={projectId}&fields=email",
  "kakao": "https://example.com/api/social/kakao/login_redirect?projectId={projectId}&fields=email",
  "linkedin": "https://example.com/api/social/linkedin/login_redirect?projectId={projectId}&fields=email",
  "mailru": "https://example.com/api/social/mailru/login_redirect?projectId={projectId}&fields=email",
  "microsoft": "https://example.com/api/social/microsoft/login_redirect?projectId={projectId}&fields=email",
  "msn": "https://example.com/api/social/msn/login_redirect?projectId={projectId}&fields=email",
  "naver": "https://example.com/api/social/naver/login_redirect?projectId={projectId}&fields=email",
  "ok": "https://example.com/api/social/ok/login_redirect?projectId={projectId}&fields=email",
  "paypal": "https://example.com/api/social/paypal/login_redirect?projectId={projectId}&fields=email",
  "pinterest": "https://example.com/api/social/pinterest/login_redirect?projectId={projectId}&fields=email",
  "qq": "https://example.com/api/social/qq/login_redirect?projectId={projectId}&fields=email",
  "reddit": "https://example.com/api/social/reddit/login_redirect?projectId={projectId}&fields=email",
  "steam": "https://example.com/api/social/steam/login_redirect?projectId={projectId}&fields=email",
  "twitch": "https://example.com/api/social/twitch/login_redirect?projectId={projectId}&fields=email",
  "twitter": "https://example.com/api/social/twitter/login_redirect?projectId={projectId}&fields=email",
  "vimeo": "https://example.com/api/social/vimeo/login_redirect?projectId={projectId}&fields=email",
  "vk": "https://example.com/api/social/vk/login_redirect?projectId={projectId}&fields=email",
  "wechat": "https://example.com/api/social/wechat/login_redirect?projectId={projectId}&fields=email",
  "weibo": "https://example.com/api/social/weibo/login_redirect?projectId={projectId}&fields=email",
  "yahoo": "https://example.com/api/social/yahoo/login_redirect?projectId={projectId}&fields=email",
  "yandex": "https://example.com/api/social/yandex/login_redirect?projectId={projectId}&fields=email",
  "youtube": "https://example.com/api/social/youtube/login_redirect?projectId={projectId}&fields=email"
}

Authentifizierung mittels sozialem Netzwerk

Authentifiziert den Benutzer über das soziale Netzwerk, das mit dem Login im Kundenportal verknüpft ist.

HTTP-ANFRAGE

GET https://login.xsolla.com/api/social/{providerName}/login_redirect?projectId={projectId}&fields={fields}&login_url={login_url}

Parameter Typ Beschreibung
providerName
string Der Name des sozialen Netzwerks, das mit dem Login im Kundenportal verknüpft ist. Möglich ist: 'amazon', 'baidu', 'battlenet', 'china_telecom', 'discord', 'facebook', 'github', 'google', 'google+', 'instagram', 'kakao', 'linkedin', 'mailru.oauth', 'microsoft', 'msn', 'naver', 'ok', 'paradox', 'paypal', 'pinterest', 'qq', 'reddit', 'steam', 'twitch', 'twitter', 'vimeo', 'vk', 'wechat', 'weibo', 'yahoo', 'yandex', 'youtube'. Erforderlich.
projectId
string Login-ID aus dem Kundenportal. Erforderlich.
fields
array of strings Liste der Parameter, die für eine erfolgreiche Benutzerregistrierung/-authentifizierung erforderlich sind. Beispiel: "email, promo_email_agreement". Der Benutzer wird aufgefordert, diese Parameter in der entsprechenden Form anzugeben.
login_url
string URL zur Generierung der Links für die Authentifizierung über soziale Netzwerke. Muss mit der Rückruf-URL übereinstimmen, die im Kundenportal in den Login-Einstellungen festgelegt ist. Erforderlich, falls mehrere Rückruf-URLs vorhanden sind.
Copy
Full screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
GET https://login.xsolla.com/api/social/amazon/login_redirect?fields=email&login_url=https://example.com&projectId={projectId}
curl --request GET \
  --url 'https://login.xsolla.com/api/social/amazon/login_redirect?projectId={projectId}&fields=email&login_url=https%3A%2F%2Fexample.com'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$request->setRequestUrl('https://login.xsolla.com/api/social/amazon/login_redirect');
$request->setRequestMethod('GET');
$request->setQuery(new http\QueryString(array(
  'projectId' => '{projectId}',
  'fields' => 'email',
  'login_url' => 'https://example.com'
)));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://login.xsolla.com/api/social/amazon/login_redirect?projectId={projectId}&fields=email&login_url=https%3A%2F%2Fexample.com");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("login.xsolla.com")

conn.request("GET", "/api/social/amazon/login_redirect?projectId={projectId}&fields=email&login_url=https%3A%2F%2Fexample.com")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://login.xsolla.com/api/social/amazon/login_redirect?projectId={projectId}&fields=email&login_url=https%3A%2F%2Fexample.com")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://login.xsolla.com/api/social/amazon/login_redirect?projectId={projectId}&fields=email&login_url=https%3A%2F%2Fexample.com")
  .get()
  .build();

Response response = client.newCall(request).execute();
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://login.xsolla.com/api/social/amazon/login_redirect?projectId={projectId}&fields=email&login_url=https%3A%2F%2Fexample.com");

xhr.send(data);
Antwort