Nemáte někdo vyřešení přihlašování přes Twitter nebo Facebook?
- David Grudl
- Nette Core | 8218
Nemáte někdo vyřešení přihlašování přes Twitter nebo Facebook a jste ochotni se o ně podělit? Moc rád bych to dal jako příklad do distribuce. Samozřejmě se zachováním vašeho copyrightu.
- srigi
- Nette Blogger | 558
Mam to vyriesene s tym tvojim dg/twitter
. Ale raz som ti uz
spominal, ze treba mierne modifikovat metodu request()
, lebo
nepocita s MIME text/plain, ktora sa prave posiela pri OAuth. Mam to napisane
v Yii, ale to hadam nebude problem (MVC klasika). Idem to vysekat
z projektu.
- Radek Hulán
- Člen | 7
Facebook Connect skript mohu poskytnout.. (není to pro Nette přímo, ale nepoužívá to žádný další framework)
- JajazXbm
- Člen | 29
Přihlášení přes facebook máme v nette implementované tady: http://www.tripomatic.com/ pokud to chceš poslat, tak se ozvi na: michal.sanger@twobits.cz
- srigi
- Nette Blogger | 558
Toz hotovo. Vecer
to este trocha uhladim, dopisem README
, mozno nahodim live. Co sa
tyka rozdielov Yii<->Nette: myslim, ze nebude problem, jedna sa
v podstate o dve akcie v OAuthController
+ nejaky kod v
OAuthIdentity
. Obidva tieto frameworky su si v tychto ohladoch
velmi podobne, takze premigrovat to bude brnkacka.
BTW v OAuthController
je 1× pouzite goto
. Odvazil
som sa k tomuto kroku po Webexpo 2011 a Rasmusovej prednaske. Ak ma niekto
cistejsie riesenie ako riesit DRY, poslite pull.
- Jan Jakeš
- Člen | 177
Úplně jednoduchá varianta ověření přes Facebook jde vyřešit
takto:
(Přes Facebook pouze ověříme uživatele a pak nastartujeme normálně Nette
session.)
Config:
services:
facebook: Facebook([appId: %facebookApp.appId%, secret: %facebookApp.secret%])
parameters:
facebookApp:
appId: 'your_app_id'
secret: 'your_app_secret'
Ověření:
$user = $this->context->facebook->getUser();
// zde vytáhnout data z FB API a použít dle libosti
// okamžité odpojení od FB
$fbCookieName = 'fbsr_' . $this->context->facebook->getAppId();
if ($this->context->httpRequest->getCookie($fbCookieName) !== NULL) {
$this->context->httpResponse->deleteCookie($fbCookieName);
}
$this->context->facebook->destroySession();
Odkaz na přihlášení přes FB si předáme do šalony:
$this->template->facebookLoginUrl = $this->context->facebook->getLoginUrl();
To je vše. Žádné FBML, přitom pro ověření uživatele plně dostačující.
Editoval Juan (13. 2. 2012 2:21)
- Vojtěch Dobeš
- Gold Partner | 1316
Tohle řešení od Martina Sadového (sodae/netrium-addons-twitter) je instantně dobré :). Stačí zaregistrovat extension a vyplnit v configu:
twitter:
consumerKey: ...
consumerSecretKey: ...
Na straně Twitteru sice nelze vyplnit adresu http://localhost
pro testování, ale to lze vyřešit pomocí
System32/drivers/etc/hosts
a uvedením fiktivní adresy. A pokud
jsem to dobře pochopil, tak aby to bezproblémově fungovalo, je třeba vyplnit
v nastavení vaší Twitter aplikace kolonku Callback URL
vpodstatě čímkoliv (nějakou URL).