我一直在研究 RESTful 身份验证,但我仍然不清楚,该如何设计Web架构。我有许多 Unresolved 问题。
我也希望我的API也可以在移动设备和网络上使用,并且我正在使用Express v4。
我不想使用基本身份验证,因为许多帖子都建议将其作为一种简单的出路,或者我可以使用Passport中间件,但是我想使用基于 token 的身份验证或类似或更好的东西,并且我想进行身份验证,因此我可以更好地理解,但不确定如何实现。
我将在下面简化我的预期身份验证体系结构:
注册新用户
将用户名和密码发布到服务器
(我知道您是否要确保连接的安全性是使用https连接,否则我将公开我的凭据,或者除https之外还提供了其他选项?否则,我将需要使用带有时间戳和哈希的公钥和私钥发送到服务器之前我的凭据吗?我该怎么做?还有其他更好的选择吗?
使用Salt加密技术加密密码,并存储哈希的密码和Salt,然后生成 token ID并发送给客户端, token ID是存储在 session 中还是使用REDIS数据库?
使用 session 不是再次违反REST吗?但是,如果我不使用 session ,如何存储 token ID并将其与客户端进行比较?
从现在起我有了 token ID,如何在客户端存储?
授权API
现在,我有了 token ID,每次我想向服务器发出请求时,都将其放置在授权 header 中。
收到请求后,服务器将检查 token API,并将其与 session token 进行比较,如果为true,则请求allow else拒绝
这是Express应用程序授权的标准方法吗?
对于冗长的帖子,我感到抱歉,但是我觉得我应该真正掌握身份验证和授权,因为它很重要。我确实希望有人可以纠正我对REST身份验证的误解,并回答我的问题或建议我做一个更好的方法。
最佳答案
关于node.js - Express.js的静态API身份验证和 session 管理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24063248/