11

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

我在 GitHub 上找到了这个,但是实现的步骤对于将 OAuth 代码安装到 CodeIgniter 并没有真正的帮助,也没有找到任何关于如何做到这一点的真正好的文章

有没有人已经这样做了,可以帮助我进行设置?

4

4 回答 4

32

何黄,

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 (must be 'authorization_code') 你读过那部分就知道了!

该帖子返回一个包含 access_token(或错误)的 JSON 字符串。是的!

下一步是什么

将 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
}
 

希望这能让你启动并运行!

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

埃里克

于 2012-06-06T12:04:34.867 回答
3

我使用了另一个非常适合与 codeigniter 一起使用的 spark 库。这是有关如何使用 spark 安装和使用它的好教程。 codeigniter 的 Oauth 教程

于 2013-05-06T04:21:19.673 回答
0

你可以试试这个火花 http://getsparks.org/packages/oauth2/versions/HEAD/show

说明很清楚,实施起来应该不会太难。

于 2012-06-06T09:46:46.513 回答
0

在我的研究中,我遵循以下指南

  1. 官方 Google OAuth指南 #1,然后是指南 #2
  2. 用于在此处登录网站的完整示例-已弃用
  3. 遵循Google OAuth 2.0 的 ThePHPLeague 指南

准备好后,通过CodeIgniter 支持的这个库下载并开始编码

于 2015-11-19T10:38:30.517 回答