【发布时间】:2018-12-18 06:08:50
【问题描述】:
我正在处理我的第一个 API 的设计,并且在授权概念方面有些挣扎 - 我希望有好心人能给我一些建议!
我正在构建的内容:
- 最终将由第三方应用和移动应用访问的 API。
- 将使用 API 的基于 Web 的“客户端”(第一方单页应用程序)。 (这个第一方应用应该是 API 的“一部分”,还是完全独立的节点应用?)
我打算使用的技术:
- 节点
- 快递
- 护照
- Mongodb 与 Mongoose
我不是为了表达或护照而结婚,它们只是看起来是最好的选择,并且有据可查 - 我不希望一个潜在的解决方案因为其他依赖关系而被解雇。和 Mongoose 一样,我实际上更喜欢 Monk 的外观(甚至只是 Mongojs),但每个 tut 似乎都使用 mongoose,所以对于节点初学者来说似乎是最安全的选择。
验证用户很简单(我经历了很棒的Beer Locker tutorial),我正在努力解决的是持续授权。自然,我不希望用户在每次请求时都必须输入用户名和密码——这些信息是否应该存储在本地并随每个请求一起发送? (如果是这样,怎么做?我找不到任何关于通过会话处理 API 的信息)或者我应该使用某种令牌?我对“摘要”授权的少量阅读(包括啤酒储物柜教程后续)使它看起来有安全问题,至少在 Passport 实现方面(我不完全理解,但似乎相关散列密码,哪个护照不作为标准,即使添加了也只支持MD5?)。
我已经构建了一个可用的 API,我可以使用“基本”(直接通过 Postman)进行授权,所以我已经有了基础 - 授权工作,我只需要工具将其带到下一步并添加会话加入其中!
这几天我一直在努力解决这个问题,但我担心我太拘泥于更传统的本地网络应用程序工作流程 - 整个 API 的事情让我有些不知所措。
非常感谢任何帮助,即使它只是为我提供适当的教程 - 上述要求一定很常见!
【问题讨论】:
标签: node.js express passport.js