OAuth2 Server开发步骤

*据说OAuth2比OAuth1的认证方式简单了许多, 方便了开发者们的开发。

0.从这里Clone一份OAuth2代码并认真阅读, 你可以参照这里的demo

1.仿照OAuth2_Storage_PDO重写一个OAuth2_Storage_Yours,

 implements OAuth2_Storage_AccessTokenInterface, OAuth2_Storage_ClientCredentialsInterface,
OAuth2_Storage_UserCredentialsInterface, OAuth2_Storage_RefreshTokenInterface,
OAuth2_Storage_JWTBearerInterface, OAuth2_Storage_ScopeInterface

2.从如上类创建一个对象, 我把它叫做$ostorage。

从OAuth2_Server创建一个对象(构造: new OAuth2_Server($ostorage) ), 我把它叫做$oserver。

从OAuth2_Scope创建一个对象(构造: new OAuth2_Scope($ostorage) ), 我把它叫做$oscope。

3.撰写authorize页面, 提供给用户确认是否授权的界面, 其中有个checkbox scope是个数组(name=”scope[]”), 让用户选择授权范围。

并且处理post回来的数据。Update! 注意这样子会丢东西。

$request = OAuth2_Request::createFromGlobals();
$response = $oserver->handleAuthorizeRequest($request, (bool)$_POST['authorize'], 用户ID);
$response->send();

4.撰写grant页面。

$request = OAuth2_Request::createFromGlobals();
$response = $oserver->handleGrantRequest($request);
$response->send();

5.至此, 需要授权的应用已经可以获得Access_Token, 并且可以通过这个Access_Token获取它需要的东西。

你可以使用$oserver->verifyAccessRequest来验证这个Access_Token并且使用指定的Scope。

PS.上面的send方法都默认返回json, 可以指定它返回xml。

发表评论?

1 条评论。

发表评论

注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

Trackbacks and Pingbacks:

本文链接:https://twd2.me/archives/3371QrCode