https://github.com/alexbilbie/CodeIgniter-OAuth-2.0-Server
我在 GitHub 上找到了这个,但是实现的步骤并没有真正帮助将 OAuth 代码安装到 CodeIgniter 中,并且没有找到任何关于如何做到这一点的好文章
有没有人已经这样做了,可以为我提供帮助设置?
Hé Hoang,
oAuth 库并不是真正不言自明的。这就是我让它工作的方式:
基本
- 阅读 oAuth 2.0 草案 23 足以了解 oAuth、角色和流程的基本概念。
- 然后按照说明在 CodeIgniter 安装中从 alexbilbie 安装控制器和库
- 安装表并添加应用程序和一些角色(考虑一下 Facebook 应用程序和您可以请求权限的角色)
- 确保您在底部某处的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
说明很明确,实施起来应该不会太难。
在我的研究中,我遵循以下指南
- 官方谷歌OAuth指南#1,然后在指南#2旁边 用于
- 登录网站的完整示例,如下所示 - 已弃用
- 遵循 ThePHPLeague 指南 for Google OAuth 2.0
准备就绪后,通过 CodeIgniter 支持的库下载并开始编码