我在本文中使用Symfony进行API密钥身份验证:
http://symfony.com/doc/current/cookbook/security/api_key_authentication.html
它很好地解释了身份验证部分,但似乎并没有解释请求之间的状态如何在正常会话之外工作。
但在某些情况下(如OAuth流程),可能会发送令牌 只有一个请求。在这种情况下,您需要对用户进行身份验证 并将该身份验证存储在会话中,以便用户可以访问 每次后续请求都会自动登录。
这是有道理的但如何用户在后续请求中链接回会话,如果只在第一个提供令牌?我无法使用会话cookie,因为CORS限制不允许我这样做。
我基本上想要实现的是一个API,我可以将登录凭据POST,以换取允许我将请求链接回会话的访问令牌。
任何人都可以帮助填补一些空白,或建议更好的方法吗?
答案 0 :(得分:0)
这是有道理的,但如果只在第一个提供令牌,用户如何在后续请求中链接回会话?
如果您使用本机会话处理程序,只要您在Symfony中请求会话,您的会话和会话ID以及会话cookie就会由PHP的会话处理程序自动发送到客户端。
我无法使用会话Cookie,因为CORS限制不允许我这样做。
然后,您无法使用仅在开始时(第一个请求)提供安全密钥的身份验证机制,而不会在后续请求中发送任何其他api密钥。
我基本上想要实现的是一个API,我可以将登录凭据POST,以换取允许我将请求链接回会话的访问令牌。
然后完成链接文档正在做的事情。为接受凭证并返回api密钥的每个人提供额外的路由(不受保护)。然后在所有后续请求中使用该api密钥,如链接文档中所述。