顯示具有 socialite 標籤的文章。 顯示所有文章
顯示具有 socialite 標籤的文章。 顯示所有文章

2016年2月1日 星期一

獨立使用Laravel Socialite

有別於前一篇,這次我們用不使用Illuminate\Container\Container來執行Laravel Socialite ## composer ``` composer require laravel/socialite ``` ## php ```php require __DIR__.'/vendor/autoload.php'; use Illuminate\Http\Request; use Illuminate\Support\Fluent; use Laravel\Socialite\SocialiteManager; use Symfony\Component\HttpFoundation\Session\Session; /* * 用 \Illuminate\Support\Fluent * 替代 \Illuminate\Container\Container */ $app = new Fluent(); /* * 用 \Illuminate\Support\Fluent * 替代 \Illuminate\Contracts\Config\Repository */ $config = new Fluent(); /* * 取得 Request */ $request = Request::capture(); /* * 使用 Symfony Session */ $session = new Session(); /* * session start */ $session->start(); /* * 設置 session */ $request->setSession($session); /* * Facebook飍數 */ $config['services.facebook'] = [ 'client_id' => '900358040081723', 'client_secret' => '06134ad6946069c6457d06688b22c259', 'redirect' => 'http://localhost/test/socialite/index.php/callback', ]; /* * 將 config, request置入 app */ $app['config'] = $config; $app['request'] = $request; // 以上為 socalite app所需設定,接下來參考官方文件即可 $socialiteManager = new SocialiteManager($app); $provider = $socialiteManager ->with('facebook') /* * 只要是oauth2就必須執行此方法, * 因為我們用的是Symfony Session而不是Laravel Session */ ->stateless(); if (strpos($_SERVER['REQUEST_URI'], '/callback') === false) { $response = $provider->redirect(); return $response->send(); } var_dump((array) $provider->user()); ```

2015年9月20日 星期日

重寫Laravel Socialite

最近需要用到OAuth的Client套件 所以就使用目前最多人使用的Laravel 不過需要的部份只有Laravel Socialite 看了一下composer.json的相依性 ```json "require": { "php": ">=5.4.0", "illuminate/contracts": "~5.0", "illuminate/http": "~5.0", "illuminate/support": "~5.0", "guzzlehttp/guzzle": "~5.0|~6.0", "league/oauth1-client": "~1.0" }, ``` 只需要這些package並不需要整個Laravel 所以就開始使用它 不過在使用的過程遇到了不少問題 它所需要的package其實不止這些 所以程式在撰寫的過程中確實遇到不少問題 再在上在本機端上開發會遇到cURL error 60: SSL certificate problem 於是決定以[PHPoAuthLib](https://github.com/Lusitanian/PHPoAuthLib.git)進行開發 所以就寫了[Recca0120 Socialite](https://github.com/recca0120/Socialite) 並使它可以獨立使用 [Demo](https://github.com/recca0120/Socialite/tree/master/demo) 目前只先實作Laravel Socialite原本的功能,之後會視情形再加功能 OAuth1 BitBucket Twitter OAuth2 Facebook GitHub Google Instagram LinkedIn