PavelZanek.com
build Nástroje

Laravel Sanctum

Laravel Sanctum je lehčí autentizační řešení pro Laravel aplikace, které potřebují chránit SPA, mobilní aplikace nebo jednoduchá tokenová API. Jeho síla není v tom, že by nahrazoval OAuth pro každý scénář, ale v praktičnosti: umí session autentizaci pro first-party SPA a zároveň osobní API tokeny s abilities pro jednodušší integrace.

Laravel Sanctum

Laravel Sanctum je nástroj, který mám rád hlavně pro jeho pragmatismus. Ne každá aplikace potřebuje plné OAuth řešení, autorizační server a složitý tok kolem klientů. Často potřebujete jen bezpečně přihlásit vlastní SPA, mobilní aplikaci nebo umožnit uživateli vytvořit osobní API token pro jednoduchou integraci.

Sanctum řeší právě tyto běžné případy. Na jedné straně umí tokenovou autentizaci přes personal access tokeny, na druhé straně nabízí session autentizaci pro first-party SPA. Důležité je vědět, který z těchto režimů pro daný projekt používáte, protože každý řeší jiný problém.

SPA bez zbytečných tokenů

U vlastní SPA, která patří ke stejné aplikaci nebo ke stejnému ekosystému, Sanctum typicky nepoužívá bearer tokeny uložené ve frontendu. Staví na Laravel session autentizaci, cookies a CSRF ochraně. To je dobrá zpráva, protože tokeny ve frontendu bývají zbytečně rizikové, pokud nejsou opravdu potřeba.

V praxi to znamená, že aplikace může mít moderní frontend a zároveň se opírat o známé Laravel mechanismy. Není nutné kvůli každému SPA projektu automaticky sahat po OAuth. Pokud jde o vlastní klientskou část aplikace, session přístup může být jednodušší a bezpečnější.

API tokeny pro jednoduché integrace

Druhá část Sanctum je správa API tokenů. Uživatel může získat token, který posílá v Authorization hlavičce jako bearer token. Tokeny mohou mít abilities, tedy omezení toho, co smějí dělat. To se hodí pro osobní přístupy, interní skripty, jednoduché integrace nebo administrační nástroje.

Tady je důležité nepřeceňovat jednoduchost. Token je pořád přístupový klíč k aplikaci. Má mít jasný účel, rozumná oprávnění, možnost revokace a u citlivějších projektů i dobře promyšlenou expiraci. Sanctum poskytne mechanismus, ale bezpečnostní pravidla musí navrhnout vývojář.

Kdy Sanctum stačí

Sanctum dává smysl u aplikací, které nepotřebují plný OAuth ekosystém. Pokud řešíte vlastní SPA, mobilní aplikaci nebo jednoduché API tokeny pro uživatele, je často přímočařejší než robustnější řešení. Přidá přesně tolik infrastruktury, kolik je pro běžný projekt potřeba.

Pokud ale stavíte veřejnou platformu pro třetí strany, potřebujete složité OAuth granty, externí klienty a detailní správu aplikací, Sanctum už nemusí být správná volba. V takové chvíli je lepší sáhnout po nástroji, který je pro plnohodnotný OAuth navržený.

Na co si dát pozor

Nejčastější problém u Sanctum je nejasnost v tom, jaký režim autentizace se vlastně používá. SPA autentizace a API tokeny nejsou totéž. Když se tyto světy zamíchají bez jasného návrhu, vznikají problémy s CORS, cookies, CSRF ochranou nebo zbytečně vystavenými tokeny.

Když se použije správně, je Sanctum velmi praktický. Umožňuje zůstat u jednoduchého Laravel řešení, které pokryje velkou část běžných potřeb. Není to univerzální bezpečnostní vrstva pro všechno, ale pro first-party SPA a jednoduché tokeny je to často přesně ten správný poměr mezi jednoduchostí a kontrolou.

add_circle Chybí tu nástroj?

Navrhněte nástroj do výpisu

Pokud jste nenašli užitečný nástroj, pošlete mi jeho název a URL. Zkontroluji ho a případně doplním do veřejného katalogu.

alternate_email

Zůstaňme v kontaktu

Odebírejte novinky ze světa Laravelu a infrastruktury přímo do své schránky.