hughbertd / oauth2-unsplash
为 The PHP League OAuth2-Client 提供的 Unsplash OAuth 2.0 客户端提供程序
1.0.3
2017-12-14 13:08 UTC
Requires
- php: >=5.6.0
- league/oauth2-client: >=1.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~5.0
This package is auto-updated.
Last update: 2024-09-21 03:43:35 UTC
README
提供 Unsplash OAuth 2.0 支持,作为 PHP League 的 OAuth 2.0 客户端 的实现
安装
要安装,请使用 composer
composer require hughbertd/oauth2-unsplash
用法
用法与 The League 的 OAuth 客户端相同,使用 \CrewLabs\OAuth2\Client\Provider\Unsplash
作为提供者。
授权码流程
<?php require_once('./vendor/autoload.php'); session_start(); $provider = new \Unsplash\OAuth2\Client\Provider\Unsplash([ 'clientId' => '{clientId}', 'clientSecret' => '{clientSecret}', 'redirectUri' => 'http://example.com', ]); if (!isset($_GET['code'])) { // If we don't have an authorization code then get one $authUrl = $provider->getAuthorizationUrl(); $_SESSION['oauth2state'] = $provider->getState(); header('Location: ' . $authUrl); exit; } if (isset($_GET['code']) && !isset($_SESSION['token'])) { try { // Try to get an access token (using the authorization code grant) $token = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'] ]); } catch (Exception $e) { print($e->getMessage()); exit; } // Use this to interact with an API on the users behalf $_SESSION['token'] = $token->getToken(); } if (isset($_SESSION['token'])) { $user = $provider->getResourceOwner($_SESSION['token']); printf('Hello %s!', $user->getName()); return; }
测试
$ ./vendor/bin/phpunit