我尝试使用Phil Sturgeon(Codeigniter RestServer)的出色工作来为我服务。
我打算使用这个工作流程:
client --> client connect to my service with credentials
server <-- check credentials in db, generate api-key for this user, and send it
client --> send request to get personal infos with new api-key in header
server <-- retrieve infos for this user from api-key, send infos
client --> another request with new api-key in header
server <-- check if api-key lifetime < 15m, if ok execute request and update lifetime else return timeout error
...
任何人都可以使用RestServer X-API-KEY帮助我这样做,或者我可以自己进行API-KEY管理? 感谢。
答案 0 :(得分:0)
您不应该使用库中使用的X-API-KEY执行此操作。密钥的使用是验证您已列入白名单的应用以访问您的API。
在您的情况下,您要做的是让您的应用生成一个身份验证令牌并将其返回给客户端。然后,客户端应使用身份验证令牌发出请求。
应使用X-API-KEY来验证请求是否来自列入白名单的“客户端”。这是流程的样子:
客户 - &gt;客户端使用凭据和x-api-key连接到您的服务
服务器&lt; - 验证 x-api-key ,检查针对db的凭据,为该用户生成身份验证令牌,并在响应中将其发回
客户 - &gt;发送请求获取具有身份验证令的个人信息
服务器&lt; - 检查身份验证令牌的有效性,检索此用户的信息并返回响应
客户 - &gt;另一个带身份验证令的请求
服务器&lt; - 检查身份验证令牌是否仍然有效(检查到期时间等)并返回响应