| Русский | English | Español | 中文 | Français | Deutsch |
|---|---|---|---|---|---|
| Русский | English | Español | 中文 | Français | Ausgewählt |
yaleksandr89/oauth2-yandex ist ein Yandex-ID-Provider für
league/oauth2-client.
Das Paket implementiert den OAuth 2.0 Authorization Code Flow, das Abrufen und Aktualisieren von Tokens sowie das Laden des Benutzerprofils über die Yandex-ID-API.
Registrieren Sie vor der Installation eine OAuth-Anwendung, konfigurieren Sie den Redirect URI und wählen Sie die benötigten Berechtigungen aus:
Anwendung in Yandex OAuth registrieren
composer require yaleksandr89/oauth2-yandex<?php
use Yaleksandr\OAuth2\Client\Provider\Yandex;
$provider = new Yandex([
'clientId' => 'fake-yandex-client-id',
'clientSecret' => 'fake-yandex-client-secret',
'redirectUri' => 'https://example.com/oauth/yandex/callback',
]);Speichern Sie Client ID und Client Secret in der Konfiguration oder in Umgebungsvariablen.
Fügen Sie Client Secret nicht dem Repository hinzu.
Das vollständige native Beispiel zeigt die Weiterleitung zu Yandex, die Prüfung von state,
PKCE, die Callback-Verarbeitung, das Laden des Profils, zusätzliche
Autorisierungsparameter und die Token-Aktualisierung:
Native Verwendung mit league/oauth2-client
In Symfony wird das Paket über knpuniversity/oauth2-client-bundle
als generic provider konfiguriert. Die separate Anleitung enthält Client-Konfiguration,
Start der Autorisierung, Token-Abruf und Laden des Profils:
Integration mit Symfony und KnpUOAuth2ClientBundle
Die ausführliche Referenz beschreibt die öffentlichen Methoden von Yandex,
YandexResourceOwner, YandexAvatar und YandexPhone sowie die Enums
YandexSex und YandexAvatarSize:
Die Werte von YandexAvatarSize entsprechen der
Yandex-ID-Dokumentation zu Benutzerdaten.
| PHP case | Yandex-Wert | Größe |
|---|---|---|
Size28 |
islands-small |
28×28 |
Size34 |
islands-34 |
34×34 |
Size42 |
islands-middle |
42×42 |
Size50 |
islands-50 |
50×50 |
Size56 |
islands-retina-small |
56×56 |
Size68 |
islands-68 |
68×68 |
Size75 |
islands-75 |
75×75 |
Size84 |
islands-retina-middle |
84×84 |
Size100 |
islands-retina-50 |
100×100 |
Size200 |
islands-200 |
200×200 |
islands-* sind technische Größenkennungen, die Yandex in Avatar-CDN-URLs verwendet;
die PHP-Cases sind nach den tatsächlichen Bildabmessungen benannt.
Struktur der Yandex-ID-Antwort anzeigen
YandexResourceOwner::toArray() gibt die ursprüngliche Antwortstruktur zurück.
Das folgende Beispiel verwendet fiktive Daten:
{
"id": "100000000000000",
"login": "ivan.petrov",
"client_id": "0123456789abcdef0123456789abcdef",
"display_name": "Иван Петров",
"real_name": "Иван Петров",
"first_name": "Иван",
"last_name": "Петров",
"sex": "male",
"default_email": "ivan.petrov@example.com",
"emails": ["ivan.petrov@example.com"],
"birthday": "0000-12-23",
"default_avatar_id": "12345/example-avatar-id",
"is_avatar_empty": false,
"default_phone": {
"id": 12345678,
"number": "+79001234567"
},
"psuid": "1.ABCdef.example-user-specific-id"
}Der Inhalt der Antwort hängt von den der Anwendung gewährten Berechtigungen ab.
Das Geburtsdatum bleibt eine Zeichenkette und kann unbekannte Bestandteile enthalten,
zum Beispiel 0000-12-23.
Wenn die Bibliothek bei der Lösung einer Aufgabe geholfen hat, geben Sie dem Repository einen GitHub-Stern — so finden andere Entwickler das Projekt leichter. 🤘
