如何同步Frontend,Backend和API之间的身份验证?

时间:2018-03-30 09:05:24

标签: php security

我有一个由3部分组成的CodeIgniter应用程序:

  • API,基本上是一个单独的实体,具有自己的位置
  • 呈现页面的CodeIgniter后端
  • 应用程序的FrontEnd,主要是jQuery。

我有一个基于会话和cookie的登录系统。基本上,身份验证数据存储在客户端(浏览器)上。

用户使用电子邮件和密码进行身份验证。后端查找身份验证cookie并知道它是否已登录。如果我直接向API发出AJAX请求,API也会知道用户是否已经过身份验证。

问题:我想渲染一些数据服务器端(这意味着我需要从后端调用API。它是服务器到服务器的通信。它们位于同一台机器上。)。

API告诉后端它没有被身份验证,因为很明显后端没有设置cookie。

如何将身份验证数据从后端传递到api?

我可以通过安全端点传递userID,只能通过服务器与服务器通信访问,但我不喜欢这个想法。

对此有何解决方案?我读到了关于oAuth和JWT的内容,但不了解他们如何帮助我。

1 个答案:

答案 0 :(得分:0)

API应该构建在后端之上。意味着请求由API处理,然后激活后端的函数并将响应发送回发送请求的客户端(根据后端函数的结果)。 JWT json web令牌,是一个令牌提供者,这意味着一旦你登录,你就会得到一个令牌" string"存储在数据库中,在API请求中,您将令牌添加到名为Authorization的头中,而不是每次都发送用户和密码,您可以从令牌本身中提取用户信息。但是仍然需要检查用户的有效性并在第一时间通过某种方式传递。 基本上你应该从客户端发送到API,API发送到服务器,然后发送响应服务器到API和API到客户端。服务器是指后端。