首页 > 解决方案 > Node Express 身份验证/授权

问题描述

我只是一个开始,使用 node/express 我有点问题。我已经使用 node js express 和 mongo db 构建了一个 todo 应用程序,它实际上有一个登录/注册表单...即,你可以在访问 todo 之前注册和登录 (/register) 和 (/login)应用程序(/todoapp)。我的问题是,如果用户 A 使用他的电子邮件和密码登录,输入一些待办事项并注销,稍后用户 B 也可以使用他自己的不同电子邮件和密码登录,他可以看到用户 A 的待办事项。但是我希望它有所不同,用户A应该只能看到他自己的待办事项,用户B也应该能够看到他自己的待办事项,请问我该怎么做?

请我的算法在下面 - 用户注册 (/register) - 用户被重定向到 (/login) ***成功登录并进入 (/todos)

这完美地工作并将所有登录的用户发送到相同的(/待办事项)

标签: node.jsmongodbexpressauthenticationauthorization

解决方案


通常,当用户成功登录时,您需要将用户 _id 存储在会话或 cookie 中(在客户端),然后当用户首先发出 get/post 请求时,您检查他的 seesion/cookie 中的 _id 是否与 _id 匹配在数据库中并仅将具有他的_id的项目(属于用户的项目)发回给用户。您可以在用户登录时注册会话,但请记住您必须防止 csrf。

您也可以为此使用 JWT。

我会建议你找到关于 JWT 的好教程或使用 session 和 csrf 保护进行授权。

这是一个大主题,观看好视频或阅读好文章比从这里复制粘贴代码更好。


推荐阅读