我正在创建一个iOS应用程序,我使用Laravel 5.2来开发我的其余API。对于用户身份验证,我正在使用JWT。当用户从我的应用程序登录时,我将发送回JWT。问题是我可以将令牌的到期时间设置为“从不”,如果可能的话,这是一个好主意吗?或者我应该每x分钟刷新一次令牌?如果我应该每隔x分钟刷新一次令牌,我该怎么办呢?我应该什么时候这样做。我希望用户在首次登录时始终登录,除非用户手动注销。我在想每次用户获取一些私有数据时我刷新令牌?
PS:我无法在laracast论坛上发表对话。每当我想点击“发布对话”时,我的鼠标箭头旁边都会出现一个错误图标。
答案 0 :(得分:0)
我会在您的客户端和后端之间协商一个密钥。然后,客户端将使用该密钥对服务器的任何请求进行签名。如果您退出,或者其他事情发生,服务器可以拒绝该秘密。
将短暂的令牌传递给客户端意味着它的功能非常有限。传递秘密意味着客户端可以在令牌过期后很长时间内继续签署请求。即使攻击者在穿过线路时有机会听到令牌,它也会短暂存在,因此使用有限。