Php 使用Symfony中的rest对用户进行身份验证的最佳/推荐方法是什么?

Php 使用Symfony中的rest对用户进行身份验证的最佳/推荐方法是什么?,php,rest,symfony,oauth-2.0,fosoauthserverbundle,Php,Rest,Symfony,Oauth 2.0,Fosoauthserverbundle,我正在symfony应用程序中开发restapi 现在,我的应用程序只在前端使用我的API(Angularjs的ajax请求)。将来,我还想向第三方应用程序公开相同的API 此外,我将有Android,IPhone应用程序等在未来 我集成了FOSOAuthServerBundle,并尝试了所有授权类型的工作流。一切正常。但我很困惑,我的应用程序是否可以使用这些功能,或者它们是否仅适用于喜欢与我的应用程序集成的第三方应用程序 我了解第三方应用程序如何使用这些工作流。但我真的不明白如何对我的本地应用

我正在symfony应用程序中开发restapi

现在,我的应用程序只在前端使用我的API(Angularjs的ajax请求)。将来,我还想向第三方应用程序公开相同的API

此外,我将有Android,IPhone应用程序等在未来

我集成了FOSOAuthServerBundle,并尝试了所有授权类型的工作流。一切正常。但我很困惑,我的应用程序是否可以使用这些功能,或者它们是否仅适用于喜欢与我的应用程序集成的第三方应用程序

我了解第三方应用程序如何使用这些工作流。但我真的不明白如何对我的本地应用程序用户进行身份验证

我想知道如何使用此捆绑包通过我的前端应用程序的rest API对我网站上的用户进行身份验证

目前,我正在使用usnig FOSUserBundle和form_long对用户进行身份验证,但我正在将前端更改为使用Angularjs和基于rest的。所以理想情况下,身份验证应该像form_登录身份验证一样工作,但它应该是基于rest的

我对它进行了研究,人们建议使用“资源所有者密码凭据”,但它需要在javascript中公开客户端机密,这可能不安全

它应该可以工作,例如,用户提交用户名/密码凭据,就像在form_登录的情况下一样,但它应该只返回access_令牌,而不是重定向


我是否需要编写使用UsernamePasswordToken和防火墙侦听器(如OAuthListener)的自定义身份验证提供程序,以返回访问令牌?这样使用安全吗?

这里有一些讨论的类似问题:

如果您不想泄露秘密,请在前端angular代码和实际OAuth服务器之间使用代理。无论如何,如果您公开机密,它仍然需要用户凭据


您可以为每个OAuth客户端设置允许的授权类型,因此,如果您创建移动应用程序,您将希望为应用程序和前端生成一对单独的客户端id和客户端机密,唯一允许的授权类型为“密码”用于前端应用。

@FlorentMorselli OpenId Connect用于通过身份提供商登录到第三方应用程序。