0

我的团队正在编写一个 Web 应用程序,其中包括一个服务器和一个客户端,我认为显然不建议发送用户uidpassword服务器来自客户端的每个请求。

我正在寻找一个很好的选择来处理这个问题,也许是这样Oauth的,有没有有效的方法?

例如,用户使用用户名lyj和密码123456从我的客户端应用程序请求登录,服务器应检查是否允许,登录成功后,客户端可以发送更多请求以从服务器获取其他资源。我的问题是,除了用户名和密码,服务器和客户端之间有没有办法确定这个人是谁,有什么建议access token在服务器和客户端之间传输吗?

4

2 回答 2

2

如果没有关于您的平台和技术的太多信息,我只能尝试一个通用的答案。根据您的使用方式,您可以通过多种方式生成令牌。MD5是一种完善的算法,您可以使用它来使用用户名和电子邮件等生成其他令牌。请记住,您无法解密 MD5 字符串。因此,要进行任何类型的验证,您必须使用原始参数重新创建字符串,然后执行检查。如果您想要一个可以反转的哈希,您可以查看 base-64 之类的内容。

MD6 和 base-64 都可以作为库在您可能使用的任何后端轻松获得。

* 更新

查看您正在使用无状态客户端的评论,这是使用令牌的一种可能方法。

  1. 客户端第一次执行登录。(最好是HTTPS)

  2. 服务器使用 (username+email+ip_address+time_stamp) 执行验证并使用 MD5(或您选择的任何其他)生成令牌并将其发送回客户端

  3. 服务器使用 userID 、 ip_address 和 time_stamp 在数据库中的表中为此客户端创建一个新会话

  4. 客户端将此令牌传回以用于将来的任何请求。

  5. 当客户端传递令牌时,服务器从数据库中检索会话并生成 MD5 哈希并将其与客户端发送的令牌进行比较。如果它相同,你很好。

  6. 您还可以使用时间戳值作为令牌的有效性窗口,这样它们就不会永远有效。除非有人可以同时创建相同的 MD5 哈希,否则不可能重新创建此令牌

于 2013-06-10T12:46:24.437 回答
0

现代 Web 应用程序容器已嵌入会话跟踪功能。当然,总是有饼干的选择。由您决定实施什么...

于 2013-06-10T12:44:45.653 回答