2017-08-02 37 views
0

我正在使用Codeigniter restserver进行社交网络项目。我想通过API访问我所有的网站功能(我的登录,getfriends,postcomments,uploadimages等)。现在我有一个问题,我应该对API(rest_auth,key等)进行任何类型的身份验证,否则我应该保持打开状态?应该如何设计API?Codeigniter Restserver - 通过API调用每个函数的最佳实践

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

我可以使用里面的功能我自己的会话检查?还是有更好的方法,因为我相信restserver肯定会有一些我在这里失踪的东西。

回答

1

如果你想用你自己的会话检查,你可以尝试选择session$config['rest_auth']

根据文档:

如果你绑这个库到AJAX端点,在这里客户使用PHP会议验证,那么你可能也不喜欢消化也基本身份验证方法。

在这种情况下,你可以告诉REST库检查什么PHP会话变量。如果该变量存在,则用户被授权。这将取决于您的应用程序来设置该变量。

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

无论如何,我不会推荐你这个选项,因为作为一个社交网站,未来你可能会喜欢有一个移动应用程序,它需要访问这个API。在那里你不会有PHP会话来检查。

对于我已阅读,是的OAuth2去保护我们的REST API的最佳选择,但我不知道如何实现它。

现在,我在CodeIgniter REST API上做的是为每个用户生成API密钥。这些密钥将具有到期日期。当到期日期到达时,将从列表中移除API密钥,并且用户应该重新认证(登录)以获得新的API密钥。

希望这可以帮助你一点。我也在这个相同的搜索,这是我得到的进一步。

+0

谢谢。我决定不在API中编写所有的东西,但是我会为了不同的目的创建api(仅用于特定目的),其他所有东西都是没有api的典型方式。我知道如果将来我会为我的项目开发一个应用程序,那么这将花费我很多时间,但现在在这个阶段,这是我愿意采用的唯一解决方案。 – 99Points