aboutyou/ auth-sdk
ABOUT YOU 外部应用程序授权 SDK
0.3.7
2014-12-15 17:01 UTC
Requires
- php: >=5.3.0
- aboutyou/jws: ~0.1
README
内容
[目录]
auth-sdk
auth-sdk 是对持久状态存储和重定向响应解析的简单包装,用于 OAuth2 网页授权类型。
更简单的解释请参考 http://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified。您至少应该阅读一次,以便对 OAuth2 有基本的了解。此 SDK 覆盖了其中提到的“Web 服务器应用程序”部分。
auth-sdk 隐藏了大多数 OAuth2 相关内容,所以您基本上只需做以下三件事(按此顺序)
- 首先尝试解析登录后发送回您网站的重定向。
- 调用 sdk->parseRedirectResponse()
- 检查是否有权限(=访问令牌)调用用户的 API 方法。
- 调用 sdk->getUser()
- 如果没有,将用户重定向到外部登录页面。 1
- 重定向到 sdk->getLoginUrl()
您的应用程序现在应该有权限代表用户进行 API 调用。请参阅:./examples/basic.php
您可以使用存储在 auth-sdk 中的访问令牌进行后续的 API 调用,直到令牌过期。(服务器端或用户登出)
使用 composer 包含
"require": {
"aboutyou/auth-sdk": "~0.3.6"
}
如果您现在只想运行示例,请参阅"示例"部分。
Oauth2 网页授权类型的使用
- 请参阅:
./examples/basic.php
创建 SDK 对象
$authSDK = new AuthSDK(array(
'clientId'=>'from_dev_center',
'clientToken'=>'from_dev_center',
'clientSecret' => 'from_dev_center',
'redirectUri'=>'entered_in_dev_center',
'scope'=>'firstname', //optional. the only valid value is firstname at the moment
'popup'=>'true|false', //optional. true will render a small login, false the login webpage
),new SessionStorage());
(有两个可选参数可以“覆盖”'loginUrl'和'resourceUrl'。但通常没有必要)
解析响应(登录重定向回您的网站)
- 首先调用此方法,并且每次请求只能调用一次
- $parsed 将为真,如果是重定向。以防万一您需要这些信息。
$parsed = $authSDK->parseRedirectResponse();
检查用户状态。显示登录或登出
- 检查是否需要登录按钮或重定向
$authResult = $authSDK->getUser();
if($authResult->hasErrors()){
//optional, add values you want to get back on your redirect endpoint
//but do this before getLoginUrl()
$authSDK->setState('someKey','someVal');
renderLoginButton( $authSDK->getLoginUrl() ); //renderLoginButton: your render method
var_dump($authResult->getErrors());
}else{
renderLogoutButton( $authSDK->getLogoutUrl() ); //renderLogoutButton: your render method
var_dump($authResult->getResult()->response);
var_dump($authSDK->getState('someKey'));
}
- 还可以设置 'state' 参数(将返回)
- getLogoutUrl() 有一个可选参数 redirectUrl。如果设置,登出后将被重定向到该地址。否则,到 SDK 配置的 'redirectUri'。
- 在这两种情况下,getLogoutUrl() 将在 redirectUrl 后附加查询参数 logout=true(例如,parseRedirectUrl() 用于清理持久存储)。
- 可以在文件夹
./examples/*
中找到
运行
- 打开终端,在 SDK 根目录下运行
php composer.phar install
。
文件
-
./examples/basic.php
:- 典型用例的示例,只需所需代码即可。注意,您需要将您的redirectUrl设置为{yourdomain}/basic.php
-
./examples/parent_page.php
&./examples/result_page.php
- 显示更多选项的示例,拦截重定向,以便您可以查看返回的参数。注意,您需要将您的redirectUrl设置为{yourdomain}/result_page.php
配置
- 将
./example/common_params.php
复制到./example/common_params.local.php
- 将./example/common_params.local.php中的参数修改为您自己的值(从开发中心获取)