SlideShare a Scribd company logo
1 of 11
OAuth2
Standa Jaša
▷ Přihlášení přes 3. stranu (OpenID, Facebook, Google)
o ideální v backendu pro zaměstance firmy, kteří jsou spojení
emailovou adresou na jedné doméně
▷ vs. uživatelské jméno + heslo
o někteří lidé nechtějí SSO používat
http://www.zdrojak.cz/clanky/nezatezujte-uzivatele/
Nezatěžujte uživatele (a sebe)
vytvářením účtů
▷ Open Standard for Authorization
▷ začal to Twitter svým OpenID
▷ dvě verze 1 a 2
▷ 1 je protokol, 2 je framework (totální rozdíl)
▷ Google (2), Twitter (1a, 2), Tumblr (1a), Facebook
(2), Amazon (2), Github (2)
▷ Většina providerů implementuje verzi 2
▷ Alternativy: BSD Auth, JAAS, PAM, SASL, ...
OAuth2 vs OAuth1 vs OpenID
▷ Proč tedy OAuth? - Podporuje ho Google, Microsoft,
Facebook, Github a LinkedIn...
▷ “Pro přístup k našemu systému se prosím
zaregistrujte na gmailu a pošlete nám svou
emailovou adresu.”
▷ => Intranety
▷ OK: invalidace účtu, reset hesla
OAuth2
▷ ukázka:
http://test.jasa.name/oauth2-client
▷ github knihovny:
https://github.com/thephpleague/oauth2-client
▷ zdroják:
https://gist.github.com/standa/6c46dbb0a184a6218a
63
1.composer require league/oauth2-client
▷ https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-
oauth2/src/main/java/org/springframework/security/oauth2/client/DefaultOAuth2RequestAu
thenticator.java
1.Spring Security
$provider = new
LeagueOAuth2ClientProviderGoogle(['clientId'
=> 'blabla',
'clientSecret' => 'heslo',
'redirectUri' => 'http://test.jasa.name/oauth2-
client/index.php?oauth2callback=1',
// 'scope' => 'email'
]);
2. Construct Provider
$token = $provider-
>getAccessToken('authorization_code', ['code' =>
$_GET['code']]);
$userDetails = $provider->getUserDetails($token);
printf('Hello %s!', $userDetails->email);
2. Get Access Token
▷ "SELECT * FROM bla
WHERE a = '" + spatnyKod + "';"
▷ yrdiyrtf
▷ uotfhbiykuy
▷ yitf ížtd ýo ufíif
▷ uyf gituy ytk
Nadpus 2
Díky za pozornost!
Otázky?

More Related Content

More from Keyup

CSS flexbox
CSS flexboxCSS flexbox
CSS flexboxKeyup
 
Magento 2
Magento 2Magento 2
Magento 2Keyup
 
Silex
SilexSilex
SilexKeyup
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on railsKeyup
 
HHVM & Hack
HHVM & HackHHVM & Hack
HHVM & HackKeyup
 
Icinga2
Icinga2Icinga2
Icinga2Keyup
 
Úvod do bezpečnosti na webu
Úvod do bezpečnosti na webuÚvod do bezpečnosti na webu
Úvod do bezpečnosti na webuKeyup
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScriptKeyup
 
Easymock
EasymockEasymock
EasymockKeyup
 
CSS 3
CSS 3CSS 3
CSS 3Keyup
 
Contract in Java
Contract in JavaContract in Java
Contract in JavaKeyup
 
Jenkins
JenkinsJenkins
JenkinsKeyup
 
JLint
JLintJLint
JLintKeyup
 
Angular js vs. Facebook react
Angular js vs. Facebook reactAngular js vs. Facebook react
Angular js vs. Facebook reactKeyup
 
Optimalizace rychlosti stránek
Optimalizace rychlosti stránekOptimalizace rychlosti stránek
Optimalizace rychlosti stránekKeyup
 
Integrační testy - Selenium
Integrační testy - SeleniumIntegrační testy - Selenium
Integrační testy - SeleniumKeyup
 
Keyup presentation about Gulp
Keyup presentation about GulpKeyup presentation about Gulp
Keyup presentation about GulpKeyup
 

More from Keyup (17)

CSS flexbox
CSS flexboxCSS flexbox
CSS flexbox
 
Magento 2
Magento 2Magento 2
Magento 2
 
Silex
SilexSilex
Silex
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
HHVM & Hack
HHVM & HackHHVM & Hack
HHVM & Hack
 
Icinga2
Icinga2Icinga2
Icinga2
 
Úvod do bezpečnosti na webu
Úvod do bezpečnosti na webuÚvod do bezpečnosti na webu
Úvod do bezpečnosti na webu
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
 
Easymock
EasymockEasymock
Easymock
 
CSS 3
CSS 3CSS 3
CSS 3
 
Contract in Java
Contract in JavaContract in Java
Contract in Java
 
Jenkins
JenkinsJenkins
Jenkins
 
JLint
JLintJLint
JLint
 
Angular js vs. Facebook react
Angular js vs. Facebook reactAngular js vs. Facebook react
Angular js vs. Facebook react
 
Optimalizace rychlosti stránek
Optimalizace rychlosti stránekOptimalizace rychlosti stránek
Optimalizace rychlosti stránek
 
Integrační testy - Selenium
Integrační testy - SeleniumIntegrační testy - Selenium
Integrační testy - Selenium
 
Keyup presentation about Gulp
Keyup presentation about GulpKeyup presentation about Gulp
Keyup presentation about Gulp
 

O auth2