令牌身份验证和注销功能
Token Authentication and logout functionality
在非常基本的令牌身份验证中,登录过程仅提供凭据并获取令牌。对于 RESTful API,令牌包含在任何 API 调用的 header 中,以暗示用户已登录。
我的问题是,注销过程是什么样的?
- 删除 server-side 处的令牌?如果用户要从 Web 注销但想留在移动应用程序中 logged-in 怎么办?
- 从客户端删除令牌?服务器不应该强制执行吗?
- 服务器应如何使令牌失效?
注销机制是如何实现的?
我认为注销操作只是使服务器端的令牌无效(在您的数据库中删除它,将过期标志设置为 false,...)。如果您想支持多种 REST 客户端,您应该能够指定要为哪个设备获取安全令牌。在这种情况下,您将能够分别使它们失效。
要提供设备类型,您可以使用 header user-agent
或提供您自己的 header。
也许这个 link 可以帮助您设计令牌管理:http://templth.wordpress.com/2015/01/05/implementing-authentication-with-tokens-for-restful-applications/。
您谈到了 Web 模式。对于这个用例(这有点特殊,因为浏览器隐含地为您保存令牌),我想您利用了 cookie。所以是的,对于这种特定的用例,相应的 cookie 也必须失效。
希望对您有所帮助。
蒂埃里
在非常基本的令牌身份验证中,登录过程仅提供凭据并获取令牌。对于 RESTful API,令牌包含在任何 API 调用的 header 中,以暗示用户已登录。
我的问题是,注销过程是什么样的?
- 删除 server-side 处的令牌?如果用户要从 Web 注销但想留在移动应用程序中 logged-in 怎么办?
- 从客户端删除令牌?服务器不应该强制执行吗?
- 服务器应如何使令牌失效?
注销机制是如何实现的?
我认为注销操作只是使服务器端的令牌无效(在您的数据库中删除它,将过期标志设置为 false,...)。如果您想支持多种 REST 客户端,您应该能够指定要为哪个设备获取安全令牌。在这种情况下,您将能够分别使它们失效。
要提供设备类型,您可以使用 header user-agent
或提供您自己的 header。
也许这个 link 可以帮助您设计令牌管理:http://templth.wordpress.com/2015/01/05/implementing-authentication-with-tokens-for-restful-applications/。
您谈到了 Web 模式。对于这个用例(这有点特殊,因为浏览器隐含地为您保存令牌),我想您利用了 cookie。所以是的,对于这种特定的用例,相应的 cookie 也必须失效。
希望对您有所帮助。 蒂埃里