将OAuth 2.0与CodeIgniter集成

hoa*_*nan 11 codeigniter oauth-2.0

https://github.com/alexbilbie/CodeIgniter-OAuth-2.0-Server

我在GitHub上找到了这个但是实现的步骤并没有真正帮助将OAuth代码安装到CodeIgniter中,并且没有找到关于如何执行此操作的任何非常好的文章

有没有人这样做可以帮我设置这个?

eri*_*man 32

HéHoang,

oAuth库并不是真正的自我解释.这就是我的工作方式:

基本

  1. 阅读oAuth 2.0草案23,足以获得oAuth,角色和流程的基本概念.
  2. 然后按照在CodeIgniter安装中从alexbilbie安装控制器和库的说明进行操作
  3. 安装表并添加应用程序和一些角色(想想Facebook应用程序和可以请求权限的角色)
  4. 确保在oAuth_server.php文件的底部某处创建了validate_user函数

请求

现在您想要作为客户端执行授权请求.本节介绍了几个简单的步骤.

编辑:Philsturgeon的oAuth 2.0授权库可用于自动执行此操作.这里描述的是手动方式.

对于图书馆,这意味着:

/index.php/oauth?client_id=IN_YOUR_APPLICATION&redirect_uri=IN_YOUR_APPLICATION&response_type=code&scope=YOUR_ROLE

使用您在数据库中输入的数据填写变量.

调试它可能给出的一些错误..

如果一切顺利,你可以选择以下内容:

登录 - >授权应用程序 - >使用?code = XXXXXXX查看redirect_uri页面

你会想要XXXXXXX代码

然后在redirect_uri上发帖子到/index.php/oauth/access_token

有了这些变量(你现在都知道了)

  • client_id(在应用程序表中)
  • client_secret(在应用程序表中)
  • redirect_uri(在应用程序表中:你要去哪里保存access_token)
  • 代码(XXXXXX)
  • grant_type(必须是'authorization_code')阅读完该部分后你就知道了!

该帖子返回包含access_token(或错误)的JSON字符串.YEAH!

下一步是什么

将access_token保存在实际应用程序中并在请求中使用它.在资源服务器上(可能是API和与我刚才解释的授权服务器相同的CodeIgniter项目),您需要在返回结果之前验证access_token.

这样工作如下:

$this->load->library('oauth_resource_server');
if (!$this->oauth_resource_server->has_scope(array('account.basic')))
{
    // Error logic here - "access token does not have correct permission"
    show_error('An access token is required to request this resource.');
}
else
{
    //GO RETURN RESULTS
}
Run Code Online (Sandbox Code Playgroud)

希望这可以让你开始运行!

PS:您需要构建一些管理区域来自己管理应用程序,会话和角色.

埃里克