我正在Symfony2中构建REST API。我们的想法是使用角度网络应用程序和移动应用程序中的这些api。使用API需要身份验证。
我想到了以下可能性:
在不同的项目中分离Symfony和angular: / api下的URL将使用OAuth2对用户进行身份验证(FOSOAuthServerBundle)。网络和移动应用都需要使用访问令牌。
在Symfony中包含angular:在Web应用程序中,用户使用symfony表单进行身份验证,因此无需使用OAuth2保护/ api下的URL。但是如何通过移动应用验证用户?
请,任何帮助都很好!
简而言之,我需要的是API可以从两个客户端使用:Web应用程序和移动应用程序
谢谢!
答案 0 :(得分:0)
总是更好地选择已经为许多人测试并由他们使用的解决方案。因此,我认为使用OAuth技术会更好,因此您可以使用移动设备,网络和其他所有技术来使用您的API。
如果您将加入API,WEBApp由您决定。因为REST不使用会话,并且每个呼叫都是您需要检查和阻止或响应的新呼叫。我有一个应用程序在同一个项目中有一个Codeigniter API和一个AngularJS APP,但是thoose不会作为会话共享任何独占的东西。
答案 1 :(得分:0)
我目前正在研究并遇到同样的问题,到目前为止,我看到的最佳方案是将项目分开。如果在Symphony项目中包含angularJS,则最终将使用Symphony提供的资源,这些资源将无法在移动结构中进行复制。通过完全与客户端分离服务器,仅使用Angular构建的Web App将更类似于您的移动应用程序,模仿独立应用程序模式。
就我个人而言,我选择了JWT Auth,因为它在您的数据库中不需要12个表,但使用OAuth2会有类似的结果。
答案 2 :(得分:0)
我使用FOSRestBundle,HWIOOauthBundle和FOSUserBundle构建了电子商务 从服务器端,通过api / login / api / login_check /生成accessstoken和authenticate 编写security.yml路由访问权限 从客户端,请致电您的api。它应该渲染200或403 HTTP_Code。