以下认证制度似乎合理的:简单的令牌,如身份验证
客户端调用与到主服务器的用户名和密码登录终点。主服务器将其发送给另一个验证服务器(将不会再提及),如果这是有效的,并且主服务器知道用户ID,则返回yes/no。如果是,则生成一个随机标记(使用一些加密随机字符串的加密库),并存储该标记的哈希值(使用PHP的password_hash()),并在用户记录中保存12个小时到期。将令牌返回给客户端。
客户现在向其他终端添加“授权:令牌TOKEN + HERE + ABCD1234”。服务器确保auth头中令牌的哈希匹配数据库中的令牌(通过PHP的password_verify()使用salt),并且过期未被命中。如果它不匹配,或者超过期满,则发回一个401
似乎至少为基本HTTP认证,这只是具有base-64编码的用户为安全的:在报头中的密码?我之所以考虑这个方案是因为主服务器不会存储认证服务器用来登录的用户名/密码。
我忘了什么?这是非常不安全的?
现在查看会话ID。你的回答似乎表明这是一个合理的解决方案,然后呢? – Luke
如果实施正确 - 我没有发现任何问题。但是请注意,“密码安全随机数生成器”实际上不是“一些加密随机字符串的加密库”。 –
哈哈指出。文档似乎表明它具有密码安全性,但我会确保。干杯! – Luke