了解 Nodejs 和 Angular 中的密码重置
Posted
技术标签:
【中文标题】了解 Nodejs 和 Angular 中的密码重置【英文标题】:Understanding password reset in Nodejs and Angular 【发布时间】:2017-07-29 09:03:30 【问题描述】:我正在尝试了解如何使用 AngularJS (1.x) 和 Nodejs 后端来实现密码重置/忘记实现。我在 Nodejs 的后端阅读了这个great post。然后,我阅读了与 Angular 和 UI 路由器相关的 SO post。然后我阅读了这个SO post,再次与 Angular 相关并且忘记了密码。
代币
我知道 Angular 中的身份验证,它处理令牌。似乎有两种主要的方法来创建令牌,JWT 和 passport-jwt。一个比另一个好?
对感到困惑
密码重置和忘记功能,据我所读(并希望能理解),大部分是在服务器端执行的,在客户端只做了一点点(什么是一点点?)。
当涉及到密码重置和忘记时,客户端究竟执行了什么操作? /将AngularJS 在这两个特性中扮演什么角色?是否有可能以某种方式为这 2 个功能集成 AngularJS?
【问题讨论】:
【参考方案1】:我知道 Angular 中的身份验证,它处理令牌。它似乎 有两种创建令牌的主要方法,JWT 和 passport-jwt。是 一个比另一个好?
这里的人们肯定会解析您对“更好”一词的使用,因为它是一个高度主观的术语。无论哪种方式,根据我的经验,最好的实现通常是最简单的。当我需要连接一些简单的身份验证时,我喜欢使用jwt-simple,并且倾向于认为护照可能是矫枉过正。使用 JSON Web 令牌实现身份验证时,最重要的是理解其背后的一般概念。一开始可能会有点混乱,但是一旦你“理解”了它,它就真的很简单了。
当涉及到密码时,客户端究竟执行了什么 重置并忘记?
在客户端,旧的 JSON Web 令牌(带有旧的/忘记的密码)需要被删除并替换为新的。
AngularJS 在这两个特性中扮演什么角色?是吗 是否可以为这 2 个功能集成 AngularJS?
所有 Angularjs——实际上,任何前端代码——在这个过程中处理的是前端 JSON Web Token 的替换。
【讨论】:
感谢您的快速回复!只要我将令牌包含为 url 参数(即 reset/:token),我还能使用 AngularJS 来呈现这些路由的视图(重置并忘记)吗? 你绝对可以使用 angular 来处理这些东西。尽管可以说您可以将令牌放入 URL,但您也可以使用 Angular$http.interceptor
,将其添加到请求标头中,甚至只是将其添加到请求有效负载中。您可以这样,当视图的控制器被实例化时,它会立即向服务器发出请求以获取信息。
没问题。在尝试实现它们之前,我不能强调首先了解 json webtokens 的工作原理。它会让你的生活更轻松。
是的,感谢您提供有关如何操作的建议。现在就这样做。
"这个过程中的句柄是前端 JSON Web Token 的替换" - 有链接吗?以上是关于了解 Nodejs 和 Angular 中的密码重置的主要内容,如果未能解决你的问题,请参考以下文章
Angular 和 NodeJS 中的路由问题 [angular]
如何在没有用户名/密码的nodejs中创建JWT用户/访问令牌?
Angular 2 Universal 中的身份验证,nodejs
在后端使用NodeJS的Put方法不更新Angular7中的MongoDB