Symfony API的OAuth实现

时间:2015-12-10 04:08:37

标签: php api symfony oauth silverstripe

对于在Symfony上构建的API实现OAuth,我有点不确定。

情况:Symfony上的API使用了常见的FOS捆绑包[{3}}。前端将位于SilverStripe上,因此登录表单将驻留在SilverStripe框架上的其他域中。

这是必需的工作流程:用户在SilverStripe上的前端表单上填写用户名和密码 - >用于检查用户名和密码是否正确的API调用 - >如果凭据是正确的,API会提供access_token以及后续API调用所需的所有其他值(我不确定)

我发现的所有教程都是为Facebook或Twitter实现oauth。

由于我不熟悉API,因此不确定如何执行此操作。

1 个答案:

答案 0 :(得分:1)

假设:

  1. 您需要在Silverstripe上收集UN / PW并使用相同的那些来通过API进行身份验证
  2. 您不需要为同一个用户拥有SilverStripe会员记录(即您完全绕过SS的内置身份验证)
  3. 我建议:

    1. 像任何其他SS表单一样构建身份验证表单。
    2. 在您的提交处理程序中使用curl或其他内容向API发送grant_type =密码请求(ala https://gist.github.com/lologhi/7b6e475a2c03df48bcdd#grant_typepassword
    3. 在会话中保存access_token
    4. 将访问令牌用于将来的API请求
    5. 要注销,只需从会话中删除访问令牌
    6. 要检查是否已登录,只需检查会话中是否有访问令牌。
    7. 如果我的假设是正确的,则无需外部模块。如果没有,您可能想查看OPauth和https://github.com/BetterBrief/silverstripe-opauth - 至少作为灵感。