Symfony2-无会话cookie的有状态API密钥身份验证


Symfony2 - Stateful API key authentication without session cookie

我阅读了这篇关于使用Symfony:进行API密钥身份验证的文章

http://symfony.com/doc/current/cookbook/security/api_key_authentication.html

它很好地解释了身份验证部分,但似乎没有解释请求之间的状态在正常会话之外是如何工作的。

但在某些情况下(如OAuth流),令牌可能会在只有一个请求。在这种情况下,您需要对用户进行身份验证并将该验证存储在会话中,以便用户为每个后续请求自动登录。

这是有道理的,但如果只在第一个请求上提供令牌,用户如何在后续请求中链接回会话?我不能使用会话cookie,因为CORS限制不允许我使用。

我基本上试图实现的是一个API,我可以将登录凭据POST到该API,以换取一个访问令牌,该令牌允许我将请求链接回会话。

有人能帮忙填补一些空白吗,或者提出一个更好的方法吗?

这是有道理的,但如果只在第一个请求上提供令牌,那么用户如何在后续请求中链接回会话?

如果您使用本机会话处理程序,一旦您在Symfony中请求会话,PHP的会话处理程序就会自动将您的会话和会话id以及会话cookie发送到客户端。

我不能使用会话cookie,因为CORS限制不允许我使用。

然后,您就不能使用只在一开始(第一个请求)提供安全密钥而不在后续请求中发送任何其他api密钥的身份验证机制。

我基本上试图实现的是一个API,我可以将登录凭据POST到该API,以换取一个访问令牌,该令牌允许我将请求链接回会话。

然后按照链接文档中的内容进行操作。为每个接受凭据并返回api密钥的人额外提供一个路由(不受保护)。然后在所有后续请求中使用该api密钥,如链接文档中所述。