有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Javax Websocket使用路径参数提交登录数据,好的做法?

我正在开发一个带有java后端的简单聊天应用程序。为了验证我的用户,我将用户名和散列密码存储在数据库中,以便稍后与传入的密码进行比较。我现在的问题是如何提交用户登录数据,这里的最佳实践是什么?目前,在连接到websocket服务器时,我通过将用户名和密码添加为路径参数来传输它们。这是实现目标的好方法还是有更好的方法


共 (1) 个答案

  1. # 1 楼答案

    这实际上取决于很多事情。如果您的应用程序也支持HTTP请求,那么我建议您使用HTTP身份验证方法,并在cookie中存储会话id。WebSocket能够向服务器发送cookie。这是最干净的方法之一

    或者,您可以开发应用程序,强制用户在发送第一条消息时输入用户名和密码,然后验证这些凭据并授权用户,如果出现异常,请关闭websocket(不是最佳做法)

    我们在应用程序中使用的另一种方法并不常见,但我们还是这样做了,而且对我们来说效果很好,那就是在不同的服务器上验证我们的用户,并给他们一个token。由于我们的websocket服务器与身份验证服务器是分开的,并且我们没有使用有效的SSO(单点登录)方法,所以cookie不是一个好的解决方案(Web浏览器不向地址为a的服务器提供地址为B的cookie)。因此,我们制定了自己的协议,在^{}内添加了从身份验证服务器提供的token,并将其发送到服务器。然后,websocket服务器使用身份验证服务器检查并验证令牌