Download the PHP package spsostrov/libsso without Composer
On this page you can find all versions of the php package spsostrov/libsso. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download spsostrov/libsso
More information about spsostrov/libsso
Files in spsostrov/libsso
Package libsso
Short Description The SPŠ Ostrov school's SSO library
License MIT
Homepage https://github.com/marek-sterzik/spsostrov-libsso
Informations about the package libsso
Knihovna libsso
English documentation is also available.
Toto je repozitář knihovny pro komunikaci s SSO systémem ve škole SPŠ Ostrov. Knihovna je určena zejména studentům SPŠ Ostrov a jejich projektům, ale lze jí využít v libovolném projektu, který by měl s daným SSO systémem spolupracovat.
Instalace
Ruční přidání do projektu
- Zkopírujte obsah tohoto repozitáře (nebo přinejmenším jeho podadresáře
lib/
) do adresářové struktury vašeho projektu. - Zařiďte, aby se v rámci každého běhu php skriptu načítal soubor
lib/libsso.php
. - Alternativně postačuje, že
lib/libsso.php
se bude načítat jenom v rámci skriptů pracujících s SSO, ale tato varianta není doporučená.
Přidání přes composer
Specifikace
Je k dispozici taktéž specifikace celého SSO protokolu v angličtině.
Dokumentace
Knihovna poskytuje několik tříd v rámci jmenného prostoru SPSOstrov\SSO
. Hlavní třídou, která poskytuje funkcionalitu knihovny je třída
SSO
. Tj. její plně kvalifikované jméno je SPSOstrov\SSO\SSO
. Nicméně, pokud je knihovna načtena přes lib/libsso.php
, jsou zároveň vytvořeny aliasy:
do kořenového jmenného prostoru, takže je možné potom příslušné třídy používat i v kořenovém (žádném) jmenném prostoru. V případě načtení knihovny přes composer nejsou třídní aliasy automaticky zapnuty, ale lze je zapnout příkazem:
Pokud chcete načíst knihovnu lib/libsso.php
a zároveň nechcete používat aliasy v kořenovém jmenném prostoru, prostě definujte konstantu
SPSOSTROV_SSO_NO_ALIASES
před načtením příslušného souboru:
Lze také pracovat bez aliasů jednoduše použitím direktivy use
, podle standardních pravidel práce s jmennými prostory v jazyce PHP:
Základní použití
Základní použití je reprezentováno testovací aplikací v adresáři testapp.
Následující kód spustí celou SSO proceduru:
Funkce $sso->doLogin()
vrátí buď objekt třídy SSOUser
reprezentující příslušného přihlášeného uživatele, nebo null
pokud se přihlášeného uživatele nepodařilo zjistit.
Pozor: Funkci $sso->doLogin()
je potřeba volat někde na samém začátku provádění skriptu, protože veškerý kód před voláním této metody se provede dvakrát. Nejprve,
před přesměrováním na SSO server a poté znova po přesměrování z SSO serveru zpět do aplikace. Kód zavolaný před zavoláním funkce $sso->doLogin()
by proto neměl mít
žádné vedlejší efekty a neměl by nic vypisovat na standardní výstup (třeba pomocí příkazu echo
).
Bezobjektový přístup
Tato metoda funguje stejně jako $sso->doLogin()
, ale přihlášeného uživatele nevrací jako instanci třídy SSOUser
, ale jako asociativní pole:
Přístup k dílčím částem login procesu
Správná funkce volání $sso->doLogin()
v tomto případě ovšem závisí na mnoha podmínkách, které nemusí být za všech okolností splněny. Proto jsou také k dispozici metody, které spouští vždy jenom část procesu:
Následující metoda provede pouze přesměrování na SSO server (1. fázi autorizaci) s tím, že přesměrování zpět proběhne na adresu $backUrl
:
Lze přitom použít následující možnosti pro $backUrl
:
Následující volání provede druhou fázi autorizace:
kde $token
může být buď null
(a pak je přečten z GET parametrů) nebo může být zcela konkrétní řetězec. $backUrl
je potřeba zadat identické jako při první fázi (přesměrování na SSO),
jinak druhá fáze selže.
Následující metoda vrací url pro přesměrování v prnví fázi, pokud si aplikace chce realizovat přesměrování ve vlasntí režii:
Rozhraní třídy SSOUser
- Login:
$user->getLogin()
- Plné jméno:
$user->getName()
- E-mail:
$user->getEmail()
- Název skupiny:
$user->getGroupName()
- Skupiny:
$user->getGroups()
- Test na přítomnost uživatele ve skupině:
$user->hasGroup("ucitele")
- Auth by:
$user->getAuthBy()
- OU Simple:
$user->getOUSimple()
- OU Name:
$user->getOUName()
- Test zda je uživatel učitel:
$user->isTeacher()
- Test zda je uživatel student:
$user->isStudent()
- Třída:
$user->getClass()
(pouze pro studenty, pro ne-studenty je hodnota vždynull
) - Obor studia:
$user->getFieldOfStudy()
(pouze pro studenty, pro ne-studenty je hodnota vždynull
) - Rok počátku studia:
$user->getStudyEntryYear()
(pouze pro studenty, pro ne-studenty je hodnota vždynull
) - Vypsání celého uživatele jako html:
$user->prettyPrint()
- Převod uživatele na asociativní pole:
$user->asArray()