【问题标题】:FOSOAuthServerBundle authorization grantFOSOAuthServerBundle 授权授予
【发布时间】:2016-11-29 11:32:13
【问题描述】:

我正在 Symfony 3.1.1 中编写一个 REST API,但我遇到了一些身份验证问题。我正在为此使用 FOSOAuthServerBundle,它工作正常。问题是客户不知道client_idclient_secret,但他的用户名和密码...

我想让我的客户使用用户名和密码,not client_idclient_secret 使用 REST API 进行身份验证。

有可能吗?

提前致谢。 (对不起我的英语,我正在学习)

【问题讨论】:

    标签: api rest symfony oauth2 fosoauthserverbundle


    【解决方案1】:

    我在两种不同的情况下遇到了同样的问题,我通过以下方式解决了它: - 代理登录功能,并在您的前端知道 client_id 和 client_secret - 创建不需要 cliend_id 和 client_secret 的自定义授权。在 Symfony 2.x 中,您必须创建一个实现 GrantExtensionInterface 接口的类并将其声明为带有以下标签的服务:

    tags: - { name: fos_oauth_server.grant_extension, uri: "http://whateveryouwahtn.tld/my_custom_grant" }
    

    uri 格式是 oAuth 的标准。该网址不需要有效。

    【讨论】:

    • 是的,我正在考虑类似的事情。 FOS 没有考虑到这种情况似乎很奇怪……我们还好吗?
    • 根据我的经验,我在 prod 环境中运行了这两种解决方案。如果它正确与否......我认为它是,因为 FosOauthServer 坚持 oAuth 标准,ant 让您有机会建立海关授权,因此您可以按需扩展。 client_id 和 client_secret 在移动环境中会产生一些麻烦,因为它们应该在应用程序的某个地方进行硬编码,因此如果您更改它们,您必须在市场上更新应用程序。通常的解决方案是代理身份验证端点并将他的 cliente_id 和秘密保存在您的“后端”中
    • 很好的评论@Carlos。那么,您能否给我们一个示例链接以供学习?或者您可能会与我们分享您的解决方案。谢谢;)
    【解决方案2】:

    使用密码凭证授权类型https://www.rfc-editor.org/rfc/rfc6749#section-4.3 完全受捆绑包支持

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-12
      • 2022-08-24
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 2015-01-23
      相关资源
      最近更新 更多