将OAuth 2.0与CodeIgniter集成

时间:2012-06-06 09:43:55

标签: codeigniter oauth-2.0

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

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

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

4 个答案:

答案 0 :(得分:32)

Hoang,

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

<强>基本

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

    现在您想要作为客户端执行授权请求。这些简单的步骤记录在this section

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

    对于图书馆来说,这意味着:

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

    使用您在数据库中输入的数据填写变量标题。

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

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

    登录 - &gt;授权申请 - &gt;请参阅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:您需要构建一些管理区域来自己管理应用程序,会话和角色。

    Eric

答案 1 :(得分:3)

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

  1. 官方Google OAuth guide #1,然后是guide #2
  2. 旁边
  3. 以[{3}}身份登录网站的完整示例 - 这是DEPRECATED
  4. 关注here
  5. 准备好后,通过ThePHPLeague guide for Google OAuth 2.0

    下载并开始编码