Symfony 的 OAuth 实现 API

OAuth implementation for Symfony API

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

情况:API 在 Symfony 上按照建议使用通用 FOS 包 here。前端将在 SilverStripe 上,因此登录表单将驻留在 SilverStripe 框架上的不同域中。

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

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

不太确定如何操作,因为我是 API 的新手。

假设:

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

我建议:

  1. 像任何其他 SS 表单一样构建身份验证表单。
  2. 在您的提交处理程序中使用 curl 或其他方式将 grant_type=密码请求发送到 API(ala https://gist.github.com/lologhi/7b6e475a2c03df48bcdd#grant_typepassword
  3. 在会话access_token中保存
  4. 为以后的 API 请求使用访问令牌
  5. 要注销,只需从会话中删除访问令牌
  6. 要检查是否已登录,只需检查会话中是否有访问令牌。

如果我的假设是正确的,则不需要外部模块。如果没有,您可能想查看 OPauth 和 https://github.com/BetterBrief/silverstripe-opauth - 至少作为灵感。