Download the PHP package globaltrustid/php without Composer

On this page you can find all versions of the php package globaltrustid/php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package php

globaltrustid/php

GlobalTrustID'nin resmî PHP istemcisi. Üç işi yapar:

  1. "GlobalTrustID ile giriş" — OAuth 2.0 / OpenID Connect, PKCE (S256) ile.
  2. Kimlik doğrulama — QR oluşturur, kullanıcı telefonuyla onaylar, sonucu okursunuz.
  3. Webhook doğrulama — gelen bildirimin gerçekten bizden geldiğini kanıtlar.

İçindekiler


Kurulum

Gereken: PHP 5.6+, ext-curl, ext-json, ext-openssl.


İki ayrı kimlik bilgisi

Bu, çalışmayan entegrasyonların en sık sebebi. api_key ile client_secret aynı şey değildir:

Nereden alınır Ne için
client_id + client_secret Panel → Entegrasyonlar → OAuth Uygulamaları Giriş (OAuth)
api_key (sk_live_...) Panel → API Keys Kimlik doğrulama oturumları

sk_live_... bir API anahtarıdır ve api_key alanına yazılır — OAuth istemcisinin sırrı değildir. Yalnızca giriş yapacaksanız api_key'e, yalnızca kimlik doğrulaması yapacaksanız client_id/client_secret'a ihtiyacınız yok.

Public istemci kullanıyorsanız client_secret yazmayın. Tarayıcı ya da mobil uygulama sır saklayamaz; akışı PKCE korur. Panelde "Public istemci" kutusu bunun için.


1. GlobalTrustID ile giriş

Yönlendirme sayfası:

Callback sayfası:

handleCallback() PKCE verifier'ını ve state'i depodan okur, state'i sabit zamanlı karşılaştırır (CSRF), kodu token'a çevirir ve profili döner. Token'lar $user['_tokens'] altındadır.

loginUrl() çağrılmadan önce oturumun başlamış olması gerekir. Varsayılan depo $_SESSION kullanır ve gerekirse session_start()'ı kendisi çağırır.


2. Kimlik doğrulama (QR)

Kullanıcının kimliğini doğrulatmak için — giriş değil.

Kullanıcı QR'ı GlobalTrustID uygulamasıyla okutup onayladıktan sonra:

"Bu kişi kimliğini gerçekten doğruladı mı?"

Ad ve e-posta kullanıcının kendi yazdığı profilden de gelebilir; kimlik numarası ve belge numarası gelemez — onlar yalnızca çipten çıkar. Bu metot tam olarak buna bakar.

Sonuçları beklemek yerine size gönderilmesini isterseniz verify()'a bir webhook adresi verin.


3. Webhook

Bu adımı atlamayın. Webhook adresiniz herkese açıktır; imzayı doğrulamadan gövdeye güvenirseniz, size sahte bir approved gönderen herkes kimlik doğrulamasını atlatmış olur.

Gövdeyi JSON'a çevirip yeniden kodlarsanız boşluk ve anahtar sırası değişir, imza tutmaz. Ham baytları doğrulayın.

verifyWebhook() ayrıca zaman damgasına bakar: imza geçerli olsa bile 5 dakikadan eski bir istek reddedilir (replay koruması). Kuyruğa alınmış webhook'ları sonradan işliyorsanız $tolerance parametresini 0 yapın.


Laravel

Paket auto-discovery ile bulunur; config/app.php'ye bir şey eklemeniz gerekmez.

İstemciyi kapsayıcıdan alın, elle new Client(...) yazmayın: sağlayıcı onu Laravel oturumuyla kuruyor. Elle kurarsanız PKCE verifier'ı $_SESSION'a yazılır ve Laravel oturumu Redis/veritabanı sürücüsündeyse callback'te geri okunamaz.

Facade da var:

Tam örnek: examples/laravel/.


CodeIgniter 4

CI4'te kendini bağlayan bir sağlayıcı yok; istemciyi bir Services girdisiyle kurarsınız. Hazır dosyalar: examples/codeigniter/.


Alanlar (scope)

Kullanıcı onay ekranında tam olarak ne istediğinizi görür. İstemediğiniz hiçbir alan size gelmez.

Scope Ne döner
openid Yalnızca giriş — hiçbir kişisel veri paylaşılmaz
identity.first_name / identity.last_name Ad / soyad
identity.birth_date Doğum tarihi
identity.gender Cinsiyet
identity.national_id TC kimlik numarası — yalnızca çipten
identity.document_number Belge numarası — yalnızca çipten
identity.nationality Uyruk — yalnızca çipten
age.over_18 Doğum tarihi olmadan yalnızca "true" / "false"
email E-posta
phone Telefon
avatar Profil görselinin adresi

"Yalnızca çipten" işaretli alanlar kullanıcının profilinden doldurulamaz; istemek, NFC ile belge okumasının yapılmış olmasını şart koşar. Listeyi kodda Client::chipOnlyScopes() ile alabilirsiniz.

age.over_18, yaş sınırı denetlemek için doğum tarihi istemenin yerine geçer: kullanıcı doğum gününü paylaşmadan reşit olduğunu kanıtlar.

address ve identity.passport_number HENÜZ İSTEMEYİN. Sunucunun keşif belgesinde (/.well-known/openid-configuration) görünüyorlar ama mobil uygulama bugün ikisini de dolduramıyor — kimlik cüzdanı özelliğiyle gelecekler. Onay için istenen ALANLARIN TAMAMININ dolu olması gerektiğinden, bu ikisini istemek oturumu onaylanamaz hâle getirir: kullanıcı "Onayla"ya basamaz ve sebebini anlamaz.


API

new Client(array $config)

Anahtar Açıklama
client_id OAuth uygulamanız (gtid_...)
client_secret Yalnızca confidential istemcide
redirect_uri Kayıtlı dönüş adresiniz (tam eşleşme)
api_key sk_live_... — kimlik doğrulama oturumları için
webhook_secret Webhook imzasını doğrulamak için
api_base Varsayılan https://api.globaltrust.id
issuer Varsayılan https://globaltrust.id
timeout Saniye, varsayılan 15
verify_ssl Varsayılan true. Kapatmayın.
store StoreInterface — PKCE verifier ve state'in yazılacağı yer

OAuth

Kimlik doğrulama

Webhook

Hatalar GlobalTrustID\Exception olarak fırlatılır.


Composer olmadan

Eski bir kurulumda Composer yoksa dosyaları doğrudan dahil edebilirsiniz:


Sık karşılaşılanlar

"client_secret gerekli" diyor ama public istemcim var. client_secret alanını hiç yazmayın. Boş bir dize göndermek sunucuya "sırrım var ama boş" demektir.

"state eşleşmedi (CSRF şüphesi)". Giriş başka bir tarayıcıda başlatılmış, oturum süresi dolmuş ya da oturum deposu iki istek arasında paylaşılmıyor. Laravel/CI4 kullanıyorsanız oturum deposunu doğru bağladığınızdan emin olun.

"oturum bulunamadı". loginUrl() ile handleCallback() farklı oturumlarda çalışıyor. Yük dengeleyici arkasındaysanız oturumların sunucular arasında paylaşıldığından emin olun.

Webhook imzası tutmuyor. Ham gövdeyi doğruluyor musunuz? $_POST, $request->all() ya da getJSON() gövdeyi çözüp yeniden kodlar ve imza artık tutmaz.

identity boş geliyor. Sonuçlar kalıcı saklanmaz, kısa süre sonra silinir. Onay gelir gelmez okuyun ya da webhook kullanın.


Destek

Lisans

MIT — bkz. LICENSE.


All versions of php with dependencies

PHP Build Version
Package Version
Requires php Version >=5.6.0
ext-curl Version *
ext-json Version *
ext-openssl Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package globaltrustid/php contains the following files

Loading the files please wait ...