记住用户和忘记密码功能在Laravel5.1和Angular JS(JWT身份验证)



我使用laravel 5和angular js和JWT身份验证来记录和注册我的用户。但是没有提到要方便用户使用记住我的功能,也没有提到当用户忘记密码时允许用户重置密码。

我研究了很多,并没有找到确切的我需要什么,虽然下面的链接的答案是有帮助的,但不足以让我继续。使用Angular View重置Laravel 5密码

请提供任何有用的信息和链接。提前感谢!:)

从JWT的角度回答。

Remember me实际上是在询问用户想要登录多长时间。根据用户的安全需求和典型使用模式,短会话通常从15分钟到一个浏览器会话不等。长时间的会话(选择Remember me)可以是24小时到一年。

JWT颁发者可以根据用户对'Remember Me'复选框的选择设置exp声明(令牌的过期时间)。

如果你想让"记住我"持续时间超过一个浏览器会话,最简单的方法是将令牌存储在cookie中。这意味着cookie还需要设置以下属性:httponly、secure和expires(与令牌中的exp声明具有相同的过期时间)。

Rest Password实现有多种形式和大小,取决于您的需求。这些与JWT没有直接关系,因为它们是在JWT发行者发出令牌之前出现的。

你要求的东西需要专门处理你的情况。大多数"记住我"系统(包括Laravel)的工作方式是通过在用户的设备上存储cookie。然后,该cookie用于在用户返回时自动进行身份验证。JWT的不同之处在于,它会给您一个令牌,而不是一个cookie,然后在报头中传递给服务器。它们本质上都是字母和数字的字符串,但是为了实现"记住我"类型的功能,您必须将JWT令牌存储在用户的浏览器中。在Angular应用中,你可以使用localStorage或其他类似的前端实践来实现。

对于忘记的密码,你可以提交与Laravel默认相同的表单字段,并简单地重写PasswordController返回响应的方式;在这种情况下,需要JSON响应而不是重定向。

最新更新