我正在处理我的第一个API的设计,并且在授权概念上有些挣扎 - 我希望有些人可以给我一些建议!
我正在建设:
我计划使用的技术:
我不喜欢表达或通行证,他们似乎是最好的选择并且有详细记录 - 我不希望因为替代依赖而被解雇的潜在解决方案。与Mongoose相同,我实际上更喜欢Monk(或者甚至只是Mongojs)的外观,但是每个tut似乎都使用mongoose,所以对于节点初学者来说似乎是最安全的选择。
对用户进行身份验证很简单(我已经完成了很棒的Beer Locker tutorial),我正在努力的是持续授权。当然,我不希望用户必须在他们发出的每个请求中输入用户名和密码 - 这些信息应该存储在本地并随每个请求一起发送吗? (如果是这样,怎么样?我找不到关于使用会话处理API的任何信息)或者我应该使用某种类型的令牌?我在“摘要”授权上做的少量阅读(包括Beer Locker教程的后续跟踪)让它看起来像是有安全问题,至少在Passport实现方面(这个我不完全理解,但似乎与哈希密码,护照不作为标准,并且即使添加了MD5也只支持MD5。)。
我已经构建了一个可以使用'Basic'授权的工作API(直接通过Postman),所以我有基础 - 授权工作,我只需要工具将其带到下一步并添加会话混合!
我现在一直试图解决这个问题几天,但是我担心我会陷入一个更传统的本地网络应用程序工作流程中 - 整个API问题让我有些不自在。
非常感谢任何帮助,即使它只是指向适当的教程 - 上述要求必须非常普遍!
答案 0 :(得分:1)
我也遇到过这个问题......
我只能建议在开头这样做: http://scotch.io/tutorials/javascript/easy-node-authentication-setup-and-local
告诉我它是否有帮助:)
答案 1 :(得分:0)
据我了解,您已经完成了身份验证,现在唯一要做的就是将当前用户经过身份验证的位置,名称,角色等存储在某个地方,以便以后与其他请求一起使用。在Passport中,您将在the function callback中执行此操作(而不是“如果此函数被调用...”注释)。
现在您必须决定,您有两种选择:
在会话中将用户信息(名称,角色等)存储在服务器上,并为用户提供一些长代码,这些代码将为下一次请求标识其会话
为用户提供一些可以证明您已通过身份验证的信息,以及他/她拥有的姓名,角色等