编写好了JAVA WEB,想像桌面软件那样,第一次使用的时候需要输入一个key,验证通过则能使用整个系统,否则就无法访问任何页面。
key可以包含授权使用时长,比如1个月。
没有输入正确的key,则无论访问什么url路径,都会跳转到输入key的页面(和用户的登录页面一样)
请问这该怎么实现?
阿神2017-04-18 09:58:35
简单来说 两种
根据对方机器生成key。
就是你自己实现一种加密方式。(摘要算法之类的不需要反解的算法就行)
然后获取项目部署那台电脑几个主要硬件的mac地址
,如主板网卡硬盘之类的,项目内用这些数据计算出一个值,和用户填入的key比较相同就启动正式项目,不同就提示请填入key。mac地址
,如主板网卡硬盘之类的,项目内用这些数据计算出一个值,和用户填入的key比较相同就启动正式项目,不同就提示请填入key。
至于如何获取对方硬件信息,就随意了,比如直接让部署项目的同志给你发回来然后,你用那个算计算一个key 发回去。
你自己生成一个key到处发放。
比如再建一个web服务,用这台机器生成一批UUID
至于如何获取对方硬件信息,就随意了,比如直接让部署项目的同志给你发回来然后,你用那个算计算一个key 发回去。
UUID
发放出去,然后项目启动后,先请求一次这个服务器进行,服务器进行校验,判断key存不存在,用过没有,发来用过的key的机器和第一次激活是同一台机器么。(一样用不可逆的算法就行)#🎜🎜# 或者更简单,搞一种伪随机算法(可逆的算法),根据种子可以算出一批key,每个key都可以反解出这个种子。#🎜🎜# 项目启动时解密输入的key,判断是不是那个种子。#🎜🎜#
#🎜🎜#
#🎜🎜#伊谢尔伦2017-04-18 09:58:35
前提是你已经通过其他方式把这个key
给了客户.key
给了客户.
校验访问是否非法通过cookie
判断是否已经登陆,如果验证比较严谨,你这种按授权来的也可以加些ip
地址,mac
地址之类的强校验,毕竟你客户群很可能不是普通大众.
授权使用时长,你说的是按一个月算的,也有可能有高级点的客户按半年算的,所以这个是生成时候决定的.
可以使用redis
存储你的这个key
,可以设置过期时间,每次访问从cookie
取key
(多数是要加密的),根据key
可以去redis
取授权剩余时间.
对于校验key失败访问任何一个页面都要跳回输入key的页面.问题带了springmvc
cookie
判断是否已经登陆,如果验证比较严谨,你这种按授权来的也可以加些ip
地址,mac
地址之类的强校验,毕竟你客户群很可能不是普通大众.🎜🎜
🎜🎜授权使用时长,你说的是按一个月算的,也有可能有高级点的客户按半年算的,所以这个是生成时候决定的.redis
存储你的这个key
,可以设置过期时间,每次访问从cookie
取key
(多数是要加密的),根据key
可以去redis
取授权剩余时间.🎜🎜
🎜🎜对于校验key失败访问任何一个页面都要跳回输入key的页面.问题带了springmvc
标签,那你应该知道请求都是被拦截然后处理完再跳转的,你应该是有思路的.🎜🎜
🎜高洛峰2017-04-18 09:58:35
不知道你的key和用户是怎么绑定的。应当是以用户的唯一标识。可以把匹配的用户的唯一标识和key存入数据库或缓存里,以此来判断用户是否有权限。至于页面跳转搞个filter就够了。