Symfony2用于一个API的两种身份验证方法

时间:2015-04-15 19:25:15

标签: php api symfony authentication fosoauthserverbundle

是否有可能在Symfony 2中为REST API进行双因素身份验证?

我想这样做:

  1. 终端用户(移动应用)准备动态登录和密码(基于某种算法)
  2. 端点用户请求API接口,例如/ api / me?access_token = [ACEESTOKEN]
  3. 为了继续,用户必须为Basic Auth。
  4. 传递创建的登录名和密码
  5. Symfony2以与移动应用相同的方式准备登录名和密码,并与移动应用程序发送的内容进行比较。
  6. 如果没问题,Symfony2会检查access_token(使用FOSOAuthServerBundle实现的OAuth2)。如果没问题,提供者会根据访问令牌接收用户对象,用户通过身份验证并可以访问api / me

1 个答案:

答案 0 :(得分:0)

您可以创建/添加多个身份验证提供程序,symfony的身份验证管理器将检查每个身份验证提供程序

“AuthenticationProviderInterface需要对用户令牌进行身份验证方法,并提供支持方法,该方法告知身份验证管理器是否将此提供程序用于给定令牌。如果是多个提供程序,则身份验证管理器将移动到列表中的下一个提供者。“

Example