我们的应用程序对每个用户具有不同的角色,并且仅允许某些用户查询数据。我们必须验证每个请求的用户ID和密码。
我有一个简单的REST获取,用户在其中传递员工ID,然后返回员工数据。传递用户名和密码的最佳方法是什么?在URL(即@PathParam)中使用用户名和密码是个坏主意吗?
现在我有以下信息,这将由用户u1返回emp id 111的员工数据
https:../ MyRestWebService / services / getEmp / u1 / encpassword / 111
防火墙中仅开放https端口,即所有请求始终通过https进行,密码始终为编码字符串(我们发布编码方式)
谢谢
这是否一个好主意始终取决于您如何使用它。密码本身至少会引起人们的注意,这可能是一个严重的问题。
通常,这两种方法在发出进一步呼叫之前都需要登录,这模仿了人类用户将使用该系统的方式,但是需要逻辑来处理客户端的登录和注销。第二种是使用API令牌,这可能不太安全,但对于自动化客户端来说更方便。请注意,没有根本不能同时做到这两者的根本原因。
看一下github如何处理API身份验证;他们实际上两者都做。您可以执行OpenAuth身份验证以创建经过身份验证的会话,该会话采用后续请求中使用的临时访问令牌的形式。您还可以创建一个永久访问令牌并将其关联到该帐户。
您还可以使用框架或内置的会话支持(取决于服务器堆栈)来隐式跟踪经过身份验证的会话。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句