将OAuth 2.0与CodeIgniter集成



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

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

有没有人已经这样做了,可以为我提供帮助设置?

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

用您放入数据库的数据填充变量。

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

如果一切顺利,您可以执行以下操作:

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

你会想要那个XXXXXXX代码

然后在redirect_uri发布帖子到/

index.php/oauth/access_token

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

  • client_id(在应用程序表中)
  • client_secret(在应用程序表中)
  • redirect_uri(在应用程序表中:您要去哪里保存access_token)
  • 代码(XXXXXX)
  • grant_type(必须是"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:您需要构建一些管理区域来管理应用程序,会话和角色。

埃里克

我使用了另一个火花库,它非常适合与codeigniter一起使用。这是有关如何使用Spark安装并使用它的好教程。编码点火器的 Oauth 教程

你可以

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

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

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

  1. 官方谷歌OAuth指南#1,然后在指南#2旁边
  2. 用于
  3. 登录网站的完整示例,如下所示 - 已弃用
  4. 遵循 ThePHPLeague 指南 for Google OAuth 2.0

准备就绪后,通过 CodeIgniter 支持的库下载并开始编码

最新更新