0

我正在将 Codeigniter restserver 用于社交网络项目。我想通过 API 访问我的所有网站功能(即登录、getfriends、postcomments、uploadimages 等)。现在我有一个问题,我应该在 API 上添加任何类型的身份验证(rest_auth、密钥等)还是应该保持开放?API应该如何设计?

我相信通过在配置中使用restserver自己的身份验证设置,每个函数调用都需要身份验证,但就我而言,我不需要对登录或注册功能进行身份验证。

我可以在函数中使用自己的会话检查吗?还是有更好的方法,因为我相信 restserver 肯定会有我在这里缺少的东西。

4

1 回答 1

1

如果您想使用自己的会话检查,可以尝试session.$config['rest_auth']

根据文档:

如果您将此库绑定到客户端使用 PHP 会话进行身份验证的 AJAX 端点,那么您可能不喜欢摘要或基本身份验证方法。

在这种情况下,您可以告诉 REST 库要检查的 PHP 会话变量。如果变量存在,则用户被授权。由您的应用程序设置该变量。

您可以在 $config['auth_source'] 中定义变量。然后通过将 $config['rest_auth'] 设置为 session 来告诉库使用 php 会话变量。

无论如何,我不建议您使用此选项,因为作为社交网络网站,您将来可能希望拥有一个需要访问此 API 的移动应用程序。在那里你不会有 PHP 会话来检查。

对于我所读到的内容,OAuth2 是保护我们的 Rest API 的最佳选择,但我还不知道如何实现它。

目前,我在 CodeIgniter REST API 上所做的是为每个用户生成 API 密钥。这些密钥将有一个到期日期。当到期日期到达时,API Key 将从列表中删除,用户应重新认证(登录)以获取新的 API Key。

希望这对您有所帮助。我也在同样的搜索中,这就是我得到的进一步。

于 2017-08-02T08:52:43.040 回答