我实在无法找到一个明确的答案/方法存在以下问题/问题:独立的后端(Symfony2中)和前端(AngularJS)REST - 如何验证
我想有一个Symfony2的后端,可能与FOSRestBundle,它只返回JSON。前端将用AngularJS编写。
用户应该只能够为我的网站(选项#1)注册/登录的帐户或登录通过现有的OAuth帐户,像谷歌或兴(选项#2)。当然,认证应该/需要是无状态的。
由于大多数如何在symfony中验证RESTFul的例子完全在PHP中(所以即使后端和前端是分离的,前端仍然是PHP)我真的很难找出我如何实现上面的两个选项。我对后端当前的想法是:
- FOSRestBundle用于处理请求/响应
- FOSUserBundle的注册,登录,密码重置等,为新用户
我的问题是:
- 我该如何验证一个普通用户(FOSUserBundle)无状态(选项#1)?在有关如何在单独的前端使用FOSUserBundle的文档中找不到任何内容。或者这种情况下是否有更好的捆绑?
- 如果用户想通过OAuth2提供者(选项#2)验证应用的哪部分(前端或后端)针对OAuthProvider(例如Google)进行身份验证?我虽然关于在AngularJS中进行身份验证(例如,通过oauth-ng模块),获取AuthToken并将其发送到后端,在那里我将用户与他的ID匹配(希望)从OAuthProvider获得。
除了问题,如果这种做法是摆在首位正确的,我真的需要有关如何在symfony中实现这一目标的一些提示。我知道,可以在symfony(CustomUserProvicer,CustomAuthentication等)中定制几乎任何东西,但在阅读这些细节之前,可能已经有一种简单的方法来解决我的问题。我的意思是,我不可能是唯一一个想要这个的人...
如果有什么不清楚的地方,请问!
我发现了这个,但我还没有使用它:https://github.com/uecode/api-key-bundle我不确定它是否适合你的用例。 –
这可能会帮助您开始使用无状态/ oauth身份验证(均已描述):http://symfony.com/doc/current/cookbook/security/api_key_authentication.html –
链接很好,我知道它们,但是通过了解了很多再读一遍。我的问题是,我错过了“大画面”。这些捆绑包在我的情况下如何一起工作(请参阅上文)。所以我真正需要知道的是两种选项(“正常”和OAuth)的完整(注册和登录)方式:从AngularJS前端的请求开始,将不同的bundles/symfony部分返回到接收响应的前端。[像这样](https://docs.google.com/drawings/d/1uTA7gQZ5IEV51Nv-HKR98sKWQNBUhEm0PPueJcoRW7c/edit)不太抽象,更具体到我的需求 – mcode