RESTAPI:保留默认的Symfony PHPSESSID验证器,以便在浏览器中使用API

RESTAPI:保留默认的Symfony PHPSESSID验证器,以便在浏览器中使用API,php,rest,symfony,authentication,web-frontend,Php,Rest,Symfony,Authentication,Web Frontend,我为智能手机应用程序开发了一个RESTAPI。身份验证使用头中给定的令牌进行。我创建了一个验证器(继承了AbstractGuardAuthenticator),将其添加到我的security.yml中的警卫列表中,一切正常 现在,我开发了一个web界面,这样用户就可以直接在浏览器中重现他/她的智能手机可以执行的一些操作。我计划只做简单的AJAX请求。我的问题是关于身份验证 在网站上,用户可以使用Symfony提供的默认用户名/密码表单或facebook(感谢HWIOAuthBundle)进行身份

我为智能手机应用程序开发了一个RESTAPI。身份验证使用头中给定的令牌进行。我创建了一个验证器(继承了AbstractGuardAuthenticator),将其添加到我的security.yml中的警卫列表中,一切正常

现在,我开发了一个web界面,这样用户就可以直接在浏览器中重现他/她的智能手机可以执行的一些操作。我计划只做简单的AJAX请求。我的问题是关于身份验证

在网站上,用户可以使用Symfony提供的默认用户名/密码表单或facebook(感谢HWIOAuthBundle)进行身份验证。在这两种情况下,身份验证都依赖于PHPSESSID cookie和为验证用户而创建的令牌

我的问题是:如何配置我的应用程序,以便根据请求由我的自定义令牌保护或默认symfony/HWIOauthBundle验证器控制对API的访问

我知道“曲奇方式”不是一种宁静的做法,但我不明白为什么在这种情况下它会是一件坏事——它似乎是最“自然”和最简单的方式


更新2016-12-29:我删除了security.yml中的API防火墙部分,现在我只有一个主要部分。在这一部分中,我有3个“监听器”:form_登录、oauth(用于facebook)和我的守卫。这样很好用。我可能看到的唯一问题是,以前只受表单_login/oauth保护的网站部分现在也可以通过满足我的保护来访问,即在标题中添加有效的令牌。我看不出会出什么问题,但它似乎并不十分严格。有人对此有想法吗?

Hello@Victor,你找到解决办法了吗?@Miles M。为用户生成一个有效时间为一小时的访问令牌,并在用户访问的每个页面中设置为JavaScript变量。这样更干净,只有一种身份验证方法和API可以保持无状态