结合前端和后端的正确方法是什么(Angular6 / PHP)

时间:2019-12-05 15:47:11

标签: php angular api frontend backend

信息:

使用-Angular6(前端),纯PHP(后端),MySQL(数据库),邮递员(测试)

域名:http://frontend-domain.comhttp://backend-domain.com

http://frontend-domain.com目录结构:

app (default angular app)
|_node_modules
|_src
|_...

http://backend-domain.com Directoy结构:

app
|_api
|  |_contract
|     |-contract.php (waits for incoming POST requests)
|_config
|  |-Database.php (database class with db connection data and function connect())
|_models
  |-Contract.php (contract class with sql querys)

情况:

我没有任何连接问题或查询问题。我能够成功请求后端(api)。

我正在进行登录身份验证,并且我使用localstorage保存了auth_token。我需要它来验证用户是否已登录并可以查看仪表板。现在我已经读到使用localstorage不好。

问题:

如果不允许我将数据保存在localstorage中,我还应该如何识别特定客户端上的当前用户?

->有人说要在服务器端使用该会话:我正在考虑“这将如何工作?” =>没用。甚至PHP $ _COOKIE也不起作用。我还尝试在角度应用程序(app / src / backend)中实现整个backend文件夹。请求仍然成功,但是会话和cookie仍然不起作用。我该怎么办?

在我的示例中,前端和后端如何组合?我应该在前端所在的同一域上使用内部backend还是保留它?是否建议像我一样拆分它?

我什至知道吗?这是后端的构建方式吗?还是只是一个简单的(公共)API?

2 个答案:

答案 0 :(得分:3)

将后端保留在有角度的应用程序中不是一个好习惯。您之前做过的方法很好,将后端和前端分开保存。在这种情况下,您可以使用多种语言,并通过REST API将其与您的angular应用程序连接

关于将令牌保存在localStorage中。我认为还不错。但是,如果您对此仍然不满意。尝试将令牌保存在浏览器Cookie中。看看这个答案可能会有所帮助。 Is it safe to store a jwt in localStorage with reactjs?

答案 1 :(得分:1)

结合前端和后端的最佳方法是使用API​​。在您的后端中,您必须使用API​​(REST)创建所有操作。前端调用此api并获取结果并更新视图。这也是最好的方法,因为它将前端与后端分开,因此您可以更改前端的技术,并且工作方式相同。