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

卖童书的网站该怎么做网站区域名怎么注册吗

卖童书的网站该怎么做,网站区域名怎么注册吗,友情链接检查,深圳做营销网站的公司哪家好1. 什么是Token#xff1f; 身份验证令牌#xff08;Authentication Token#xff09;#xff1a;在身份验证过程中#xff0c;“token” 可以表示一个包含用户身份信息的令牌。 例如 Token#xff08;JWT#xff09;是一种常见的身份验证令牌#xff0c;它包含用户的…1. 什么是Token 身份验证令牌Authentication Token在身份验证过程中“token” 可以表示一个包含用户身份信息的令牌。 例如 TokenJWT是一种常见的身份验证令牌它包含用户的身份信息例如用户名或用户ID以及其他相关信息如权限或过期时间。无意义令牌token这种一般在获取后通过nosql查询token对应的用户信息。 当然设计token网上大多有现成的解决方案但是通过token如何拿个人信息呢 2. 如何优雅的获取用户信息 虽然token是用户凭证但是在后端中token是不能直接和数据进行交互的我们需要转换成token用户信息。 解决思路 我们大多会在过滤器filter进行token检验在这里我们已经已经从header中解析并且验证了token了。如果我们要是再在Controller中获取header在解决感觉一点也不优雅。 我们的两种解决方案: 通过header进行解析推荐 哈哈哈没想到我们还是从这种low的方法里弄的吧。 实际上nosql性能很不错再查一次也无伤大雅并且这种方式耦合度较低符合代码规范。 我们可以通过注解的方式可以尽量美观很多 1.1. 创建CurrentUserUuid接口 Target(ElementType.PARAMETER) Retention(RetentionPolicy.RUNTIME) public interface CurrentUserUuid { }1.2. 创建oginUserHandlerMethodArgumentResolver解析器 Component public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver {Resourceprivate TokenUtil tokenUtil;Overridepublic boolean supportsParameter(MethodParameter parameter) {return parameter.hasParameterAnnotation(CurrentUserUuid.class) parameter.getParameterType().isAssignableFrom(String.class);}Overridepublic Object resolveArgument(MethodParameter parameter, ModelAndViewContainer container,NativeWebRequest request, WebDataBinderFactory factory) {// header中获取用户tokenString token request.getHeader(Authorization);// TODO 根据userId获取User信息这里省略直接创建一个User对象。return tokenUtil.getUserToken(token);} }过滤器二次封装请求体 我们可以在第一次过滤器查的时候把对应的信息封装到请求中但是请求多变getpost参数一般在不同的位置上需要写更复杂的结构 Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest (HttpServletRequest) request; HttpServletResponse httpResponse (HttpServletResponse) response; String token request.getHeader(token); JWTResult result JWTUtils.checkToken(token); Long userId result.getUserId(); HttpServletRequestWrapper requestWrapper new HttpServletRequestWrapper(httpRequest) { Override public String[] getParameterValues(String name) { if (name.equals(loginUserId)) { return new String[] { userId .toString() }; } return super.getParameterValues(name); } Override public EnumerationString getParameterNames() { SetString paramNames new LinkedHashSet(); paramNames.add(loginUserId); EnumerationString names super.getParameterNames(); while(names.hasMoreElements()) { paramNames.add(names.nextElement()); } return Collections.enumeration(paramNames); } }; chain.doFilter(requestWrapper, httpResponse); }这种好处是只需要查一次但是请求参数多变需要写很多额外的解构去处理并且增加了耦合度 3. 总结 我还是推荐方法1无疑虽然多查一次但是结构简单耦合度低并且代码较为简洁。
http://www.hkea.cn/news/14547294/

相关文章:

  • 网站建设需求方案网站开发展示
  • 网站开发图书系统前台模板自己学习做网站6
  • 免费个人网站建站申请一下网站后台设置关键字
  • 重庆市建设工程信息官网站广州十大传媒公司
  • 专业做网站公司怎么样小程序网站开发
  • 全屏网站宽度深圳网站设计机构
  • 网站开发业绩海南省生态文明村建设促进会网站
  • wordpress建站访问提示不安全创意ppt模板大全
  • 盘锦网站制作公司做外国美食的视频网站
  • 自建站怎么接入支付淘宝seo关键词的获取方法有哪些
  • 网站开发网站维护这行业怎么样wordpress菜单优化插件
  • 国外网站怎么浏览上海软装设计公司排名
  • 建设网站得目的网页搭建初衷
  • 网站建设服务器端软件上下篇文章wordpress
  • 玛沁县网站建设公司网页制作软件dream
  • 做最好的导航网站厦门规划建设局网站
  • 滁州新橙科技网站建设和平天津网站建设
  • 海安网站设计公司青海省建设厅网站备案资料
  • 浙江建设监理协会网站建站平台和网站建设的区别
  • 地方网站建设电子商务网站建设实训室简介
  • linux主网站设计万网 网站超市
  • 桂林城乡建设局网站电商网店培训
  • 石家庄网站建立做ppt哪个网站的图片好
  • 艺友网站建设北京中高端网站建设公司
  • 网站开发培训好学吗项目负责人质量建设厅官方网站
  • 局政务网站建设管理工作总结西安网站建设行业
  • 网站五合一建设地产网站模板
  • 网站开发 合同深圳网络推广培训中心
  • 网站服务器建设方案wordpress 好看的主题
  • 官方网站建设哪家公司好怎么看别人网站在哪里做的外链