当前位置: 首页 > news >正文

网站建设上线问题网站做的简单是什么意思

网站建设上线问题,网站做的简单是什么意思,公司建网站多少钱一个,搭建论坛需要多少钱1.Token简介 Token的引入#xff1a; 当项目要求进行前后端分离或移动端开发时#xff0c;是无法使用 Session 的#xff0c;那么需要使用 Token 进行 session 的管理#xff0c;通过搭建一个认证#xff08;Auth#xff09;系统负责用户身份验证#xff0c;并进行整个系…1.Token简介 Token的引入 当项目要求进行前后端分离或移动端开发时是无法使用 Session 的那么需要使用 Token 进行 session 的管理通过搭建一个认证Auth系统负责用户身份验证并进行整个系统 Token 的维护与管理 Token的定义 Token是服务端生成的一串字符串以作客户端进行请求的一个令牌当第一次登录后服务器生成一个Token便将此Token返回给客户端以后客户端只需带上这个Token前来请求数据即可无需再次带上用户名和密码。 使用Token的目的 Token的目的是为了减轻服务器的压力减少频繁的查询数据库使服务器更加健壮。 2.Token的数据结构及内容 Keytoken 其设计原则必须保证在整个系统中唯一存在 根据不同客户端(PC、移动)为了便于统一管理和维护token生成算法设计如下 PC 端token:PC-USERCODE[加密]-USERID-CREATIONDATE-RONDEM[6 位]移动端token: MOBILE-USERCODE[加密]-USERID-CREATIONDATE-RONDEM[6 位] Value存储登录用户的信息数据数据格式为 json 具体内容包括ID账号用户名密码用户类型平台ID等 3.Token 有效期的维护 基于系统的安全性考虑需要设置 Token 的有效期并且为了维护 Token 的有效期须把 Token 放入到 Redis 里进行维护管理。对于不同客户端PC 端、移动端的 Token 所设置的有效期策略不同 PC端 Token 的有效期为 2 个小时若 2 个小时内没有进行 Token 置换的话就会自动在 Redis 里清除该 Token那么当该用户再次发送请求时则会提示Token 失效请重登录。此处应注意前端须自行管理 Token 的生命周期原因是 Token 存在 cookie 里web的安全性较差。 移动端 Token 永不失效修改密码后须更换 Token。 注意由于移动端的 Token 一般不需要过期只有当在 PC 页面进行个人密码修改后移动端才会退出重登录或者当在移动端修改密码操作用户也不需要退出重登录直接在 Redis 中更新该 Token 中用户修改的新密码即可。 4.AS 系统(Auth System) 该系统主要负责登录用户身份的验证登录成功后生成唯一的 Token并将 Token 存入到 Redis 里进行维护管理以及 Token 的置换Reload等 生成Token 当用户进行系统登录时Auth 系统会进行用户名和密码的校验验证成功后生成 Token存入到 Redis 中同时将该 Token 的 key 返回给前端前端调用的所有 API 都必须传递该 Token并规定 Token 统一放在请求头header里后端需要获取当前用户信息时就可以直接从 header 中获取即可。 为了保证绝对的安全正常业务下的 API 返回给前端的 Token 信息如下 { status:200, data:{ token:token:PC-3066014fa0b10792e4a762-23-20170531133947-4f6496, ticket:yhe736dyfhfyw, expTime:6474783, genTime:7565746 }, errorcode:0, msg:{} } 通常情况下返回给前端的 Token 数据只有四项内容token(key)、ticket、Token 的生成时间、Token 的失效时间。为了安全考虑不会包含当前用户的任何信息每次后端需要获取Token 信息时应从 header 中获取到 token(key)和 ticket通过它们两个去 Redis 中进行 k-v 匹配获取相应的 Token 信息即当前用户的相关信息。 Token 置换 Token 置换规则定义前端获取 Token 的 1.5 时后可进行 Token 置换若在最后的半个小时内客户端发出请求则会进行 Token 置换拿到重新生成的 Token包括token(key)、生成时间、失效时间若客户端在最后的半个小时内没有发送任何请求那么两个小时后自动过期即该 Token 自动从 Redis 里清除用户须重新登录。 注意事项 不论是最后半个小时的置换时间还是 Token 的 2 个小时有效期都是根据系统的业务需求所设计的策略方案。为了防止客户端恶意的进行 Token 置换需要保证生成 Token 后的 1 个小时内不允许置换。需要保证客户端传递有效的 Token 进行置换。为了解决页面的并发问题在进行置换 Token 时生成新 Token但是旧 Token 不能立即失效应设置为置换后的时间延长 2 分钟。否则会出现页面因为 Token 失效而无法完成置换。 编写token置换模块 在exception文件夹下创建TokenValidationFailedException编写构造方法 public TokenValidationFailedException(String msg) {super(msg);}理清置换token编写思路 首先判断token是否有效 生成token后的一个小时内不允许置换 置换token需要生成一个新的token并且旧token不能立即失效应设置为置换后时间延长两分钟 兼容手机端和pc端 在TokenService中添加旧token延迟时间 /*** 旧token延迟时间*/public final static int REPLACEMENT_DELAY 2*60;在TokenService中编写token置换方法 /*** 置换token* 1,首先判断token是否有效* 2生成token后的一个小时内不允许置换* 3置换token需要生成一个新的token并且旧token不能立即失效应设置为置换后时间延长两分钟* 4兼容手机端和pc端*///引入logger private static Logger logger Logger.getLogger(ItripUserServiceImpl.class);Overridepublic String replaceToken(String agent, String token) throws TokenValidationFailedException {//1,首先判断token是否有效if (!exists(token)){//终止置换throw new TokenValidationFailedException(未知的Token或Token已过期);}Date tokenGenTime;//生成时间try{//2生成token后的一个小时内不允许置换String[] tokenDetails token.split(-);SimpleDateFormat format new SimpleDateFormat(yyyyMMddHHmmss);tokenGenTime format.parse(tokenDetails[3]);} catch (ParseException e) {e.printStackTrace();logger.error(e);throw new TokenValidationFailedException(token格式错误token);}long passed Calendar.getInstance().getTimeInMillis()-tokenGenTime.getTime();if (passed REPLACEMENT_PROTECTION_TIMEOUT * 1000){throw new TokenValidationFailedException(token处于置换保护时间剩余(REPLACEMENT_PROTECTION_TIMEOUT)*1000(s),禁止置换);} // 3置换token需要生成一个新的token并且旧token不能立即失效应设置为置换后时间延长两分钟String newToken ;ItripUser itripUser this.load(token);long ttl redisAPI.ttl(token);//token有效时期//4,兼容手机端和pc端if (ttl 0 || ttl -1){newToken this.generateToken(agent,itripUser);this.save(newToken,itripUser);redisAPI.set(token,REPLACEMENT_DELAY,JSON.toJSONString(itripUser));}else {throw new TokenValidationFailedException(当前token的过期时间异常禁止置换);}return newToken;}添加TokenController引入tokenService并编写置换token方法retoken Autowiredprivate TokenService tokenService;RequestMapping(value /retoken,method RequestMethod.POST,produces application/json)ResponseBodypublic Dto retoken(HttpServletRequest request){String agent request.getHeader(user-agent);String token request.getHeader(token);try {String newToken tokenService.replaceToken(agent, token);ItripTokenVo itripTokenVo new ItripTokenVo(Calendar.getInstance().getTimeInMillis() TokenService.SESSION_TIMEOUT*1000,Calendar.getInstance().getTimeInMillis(),newToken);return DtoUtil.returnDataSuccess(itripTokenVo);} catch (Exception e) {e.printStackTrace();return DtoUtil.returnFail(e.getMessage(), ErrorCode.AUTH_AUTHENTICATION_FAILED);}}启动tomcat登录爱旅行在redis中会有当前用户的token使用postman可以测试如测试结果msg返回‘token处于置换保护时间剩余3600000(s),禁止置换’则正常 5.前/后端具体实现 后端 Auth 系统需要提供 API 生成 Token 该接口返回的数据内容包括Token 的 key注需要对敏感信息进行加密处理、 Token 的生成时间、Token 的失效时间注过期时间减去生成时间一定是两个小时 Token 置换 该接口返回新 Token。实现过程中需要注意如下几点 生成 Token 后的 1 个小时内不允许置换注主要是为了防止客户端恶意的进行 Token 置换 由于需要保证客户端传递的置换 Token 为真实存在并有效的故需要在该API 方法内首先判断 Token 是否有效。 在进行置换 Token生成新 Token旧 Token 不能立即失效应设置为置换后的时间延长 2 分钟。 前端 登录成功后接收 Token 放入 cookie 中请求的时候从 cookie 中取出放入到 header 里如下 $.ajax({ headers:{ Accept:application/json;charsetutf-8, Content-Type:application/json;charsetutf-8, //从 cookie 中获取 token:token:PC-3066014fa0b10792e4a762-23-20170531133947-4f6496 }, typepost, ..... }) 负责服务器时间同步根据 API 返回的 Token 生成时间、失效时间进行同步 置换 Token 需要同步处理即保证只有一个请求置换 Token
http://www.ho-use.cn/article/10823372.html

相关文章:

  • 如何制作新型网站程序公司注册代理机构
  • 做pc网站会连带手机版如何制作短视频
  • html5 网站开发定制简洁大气企业网站模板
  • 哈密地网站建设网站建设征求意见通知
  • 新网站seo技术湖北省建筑信息平台
  • 遂宁移动端网站建设合肥百度搜索排名优化
  • 佛山网站建设公司分享微信营销的五个技巧韩国设计欣赏网站
  • 做标准件网站推广公司产品
  • 蓝田微网站建设雄安网站建设制作
  • 有本地服务器怎么做网站网页设计如何制作背景
  • aspcms网站使用教程福田蒙派克4s店
  • 长沙市做网站四川建设厅电话网站
  • 厦门做网站优化价格学校网站 aspx源码
  • 高端网站建设找哪个公司新网站做seo优化步骤
  • 福州建设厅官方网站网络营销案例分析实验报告
  • 互联网舆情报告福州网站seo
  • 荔浦网站开发微信公众号开通流程
  • 徐州网站建设xlecwordpress 导出表单
  • 服务器网站绑定域名网站建设淮南本地网
  • 财务管理系统东营做网站优化公司
  • 网站后台更新的内容出不来wordpress清理缓存
  • 黄石网站制作公司网站建设业务流程图
  • 城乡建设学校官方网站wordpress采集英文
  • 南阳网站备案网络推广网站河南
  • 建站公司 万维科技适合夫妻二人观看的电视剧
  • 2018年公司做网站注意事项wordpress去掉竖线
  • 消息网站怎么做昆仑万维做网站
  • 网站开发企业开发一家做公司点评网站
  • 福建中江建设公司网站wordpress多个页面主题
  • 做公司网站详细步骤6做销售网站需要多少钱