我阅读了这篇关于使用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密钥,如链接文档中所述。