如何从同一服务器上的外部应用程序访问cakepp操作


How can I access cakephp actions from external applications on the same server?

我正在构建我的第一个Cakephp应用程序,但我正在解决这个问题:我需要我的应用程序(mydomain.com/cake应用程序)与同一服务器上的另一个非cake php应用程序(mydomain.com/custom类)合作。

两个应用程序都应该共享身份验证和会话,我希望Cakephp能够处理这些。

但是,自定义类需要查看谁登录了,还需要通过访问我的用户模型或在我的UsersController中调用setUser操作,将用户添加/编辑到我的蛋糕应用程序数据库中。自定义类无法访问cake应用程序数据库。

如何从Cakephp框架之外访问Cakephp的AuthComponent和我的用户模型/UsersController?为了实现这一点,我需要在自定义类中包含哪些蛋糕文件?

自定义类无法访问cake应用程序数据库。

唯一的方法是使用API,这样就不需要直接访问DB。实现一个RESTful API,例如,你的非ake应用程序可以调用。

  • http://book.cakephp.org/3.0/en/development/rest.html
  • http://book.cakephp.org/3.0/en/views/json-and-xml-views.html

但是,自定义类需要查看登录者,以及将用户添加/编辑到我的蛋糕应用程序数据库,或者访问我的用户模型,或者通过调用UsersController中的setUser操作。

然后你必须阅读cookie,cookie需要一些你可以与API请求一起发送的内容,以便API知道谁在请求什么。

你不能简单地从Cake中要求()或包含()一些文件,它会起作用,这是不会发生的,因为Auth系统是一个完整的堆栈,你必须初始化请求、控制器、组件集合、Auth组件和Auth适配器。相反,请检查Cake如何编写和读取Cookie,并在自定义类中以相同的方式实现。但请注意,Cake会将cookie加密保存。