Skip to content

Latest commit

 

History

History
149 lines (112 loc) · 5.55 KB

File metadata and controls

149 lines (112 loc) · 5.55 KB

OAuth2 Yandex

Source Code CI Codecov Latest Stable Version Total Downloads PHP League OAuth2 Client Software License

OAuth2 Yandex — Yandex ID provider client for league/oauth2-client

Sprache auswählen

Русский 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.

Vorbereitung

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

Installation

composer require yaleksandr89/oauth2-yandex

Konfiguration

<?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.

Verwendung

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

Symfony und KnpUOAuth2ClientBundle

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

Verfügbare Methoden

Die ausführliche Referenz beschreibt die öffentlichen Methoden von Yandex, YandexResourceOwner, YandexAvatar und YandexPhone sowie die Enums YandexSex und YandexAvatarSize:

Referenz der öffentlichen API

Avatargrößen

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.

Profilbeispiel

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. 🤘