具有微服务架构的Silex应用程序中的令牌/无状态身份验证?

时间:2016-04-18 13:05:31

标签: php session authentication silex microservices

我想使用Silex作为几个服务的基础框架。它将被不同的客户端和api(移动设备,网络等)使用,所以我通常会尝试避免使用标头/会话和“使用标头”。

我正在努力实现的设置/流程:

  1. 用户登录他的移动应用程序/网页上向authservice.domain.com发出请求,获取新令牌作为在令牌存储中注册的响应

  2. 当用户从网络或移动应用产品product.domain.com进行访问时,会从标题中读取令牌并在商店中进行检查

  3. 一切看起来都很漂亮,但不知何故我不能让Silex在登录步骤后为请求添加标题,我能够将其添加到响应中,但不能请求(我尝试使用之前/之后的中间件,所以第一次使用,然后添加$ app->之后/之前的令牌)...顺便说一句。我不确定我是否理解正确,但如果用户在设置标题时按下刷新页面按钮,那么自定义标题会不会丢失?如果是这样的话,是否可以在没有cookie /会话的情况下将令牌保持在标题中?

    这是我在获取令牌后运行的示例代码,它在响应时得到设置(我可以在chrome中看到它),但它不会在请求时设置 - 我尝试使用中间件之前

    init_per_testcase

    有关如何实现这一目标的任何建议?那么...无状态auth在普通(Silex:))php中使用多个服务的头文件而不在cookie或(api网关)会话中保留令牌?

1 个答案:

答案 0 :(得分:2)

我不确定它会回答你的问题,但是你可以看看WSSE认证机制,它是无状态的并且可以使用标题,因此它可能正是你所寻找的。

官方文档here中有一个symfony2实现示例,也很好地解释了here

你也可以找到为Silex实现WSSE的github库,也许你应该尝试一下:

希望这可以帮助您或其他人在Silex中寻找一种方法来实现漂亮的RESTful-ish /无状态机制,如果不是您想要的,那就很抱歉。

相关问题