称妙用Redis避免使用用户名称(redis避免使用用户名)
鉴权
每天我们都会看到一部分网站使用用户名称鉴权,尤其是后台管理平台。这强制登录让访客输入用户名和密码,以保护把服务器及数据保护起来,但用户名称鉴权可能会有一些问题,例如忘记密码,登录次数限制等。这时候,Redis 就可以发挥它的作用了!
Redis的一个强大的特性是支持自定义数据结构,可以在客户端程序与服务器之间存储一些数据。这样便可以根据客户端和服务器程序之间传递的唯一ID(用户ID或令牌),来动态校验客户身份而无需用户名称鉴权。
例如,我们用一个在Redis中存储的令牌来判断客户的身份(令牌是一个长期有效的字符):
//客户端获取令牌
token = getToken();
//将令牌存入Redis
redisSet(“token”, token);
//服务器端从Redis获取令牌
String token = redisGet(“token”);
//对比客户端的令牌和服务器端的令牌
if (token.equals(token)) {
// 认证通过
}else {
// 认证失败
}
如此一来就可以避免强制访问者输入用户名称去鉴权,只要Redis获取一个令牌,就可以在客户端和服务器之间完成认证。
当然,我们也可以使用Redis作为客户端程序的权限仓库,用它记录客户的登录次数和登录时长等信息。这样一来,当客户要访问系统时,就可以根据这些信息来判断是否该允许他登录,从而达到另一个级别的用户身份认证。
Redis的存储能力使我们可以利用它带来的方便性来取代用户名称鉴权,从而提高用户体验,不仅方便客户使用,而且也标志着系统的安全性得到提升。