Web服务的用户身份验证 - 存储在客户端密码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web服务的用户身份验证 - 存储在客户端密码相关的知识,希望对你有一定的参考价值。

我的工作需要一些基本的身份验证的Web服务的肥皂。

这样的想法是只要求所有的Web服务方法包含用户名和密码参数,然后验证,在我们的用户数据库中存在的这些值:

public String[][] someWebserviceMethod(String username, String password) throws FailedLoginException 

    // Verify that user with username and password exists

    //do database stuff and return data

这确实在客户端提出一个问题。用户首次登录到应用程序后,我们需要在内存中的用户名和密码保存为纯文本。那是可以接受的?如果没有什么是首选的方法?

另外,我的web服务将在HTTPS举行。这是否确保当客户端发送SOAP请求密码安全加密?

编辑:请问一个会话ID的工作?我从来没有实现一个没有框架或Web服务器这样做是为了我。也许是这样的:

  1. 客户端发送的用户名和密码。
  2. 如果客户是有效的,服务器返回随机字符串(阶段ID)。
  3. Server存储会话ID和数据库时间戳
  4. 客户端存储的SessionID在内存中,不会保存密码
  5. 客户端请求的Web方法使用用户名和会话ID
  6. 如果用户名和会话ID的用户存在,超时期限内的时间戳,授权访问和更新时间戳。否则力重新登录。
答案

是HTTPS - S代表安全并加密所有通信。但你总是可以使用一些其他的加密方法,如MD5,SHA-1,更常见的。如果你这样做了一些基本的训练它的确定存储在无任何加密的明文/ JSON数据,否则看看这些哈希函数:

以上是关于Web服务的用户身份验证 - 存储在客户端密码的主要内容,如果未能解决你的问题,请参考以下文章

基于 Token 的身份验证方法

基于 Token 的身份验证方法

基于 Token 的身份验证方法

使用 REST 的用户身份验证

Openfire 服务器:使用令牌而不是用户名/密码进行身份验证

基于token的身份验证方法