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

seo网站推广案例广告宣传方式有哪些

seo网站推广案例,广告宣传方式有哪些,抽奖页面设计模板,wordpress 去除google1.1 登录接口需求 1.2 JWT令牌 1.2.1 JWT原理 1.2.2 引入JWT坐标 1.2.3 单元测试 1.2.3.1 引入springboot单元测试坐标 1.2.3.2 在单元测试文件夹中创建测试类 1.2.3.3 运行测试类中的生成和解析方法 package com.geji;import com.auth0.jwt.JWT; import com.auth0.jwt.JWTV…1.1 登录接口需求 1.2 JWT令牌 1.2.1 JWT原理 1.2.2 引入JWT坐标 1.2.3 单元测试 1.2.3.1 引入springboot单元测试坐标 1.2.3.2 在单元测试文件夹中创建测试类 1.2.3.3 运行测试类中的生成和解析方法 package com.geji;import com.auth0.jwt.JWT; import com.auth0.jwt.JWTVerifier; import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.interfaces.Claim; import com.auth0.jwt.interfaces.DecodedJWT; import org.junit.jupiter.api.Test;import java.util.Date; import java.util.HashMap; import java.util.Map;public class JwtTest {Testpublic void testGen() {MapString, Object claims new HashMap();claims.put(id, 1);claims.put(username, 张三);//生成jwt的代码String token JWT.create().withClaim(user, claims)//添加载荷.withExpiresAt(new Date(System.currentTimeMillis() 1000*60))//添加过期时间.sign(Algorithm.HMAC256(geji));//指定算法,配置秘钥System.out.println(token);}Testpublic void testParse() {//定义字符串,模拟用户传递过来的tokenString token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoxLCJ1c2VybmFtZSI6IuW8oOS4iSJ9LCJleHAiOjE3MDc4MTA0NTh9.Ir8IDQ673BoD86ubm8nMo_F91P-ytCd2_MaDzi5mONo;JWTVerifier jwtVerifier JWT.require(Algorithm.HMAC256(geji)).build();DecodedJWT decodedJWT jwtVerifier.verify(token);//验证token,生成一个解析后的JWT对象MapString, Claim claims decodedJWT.getClaims();System.out.println(claims.get(user));//如果篡改了头部和载荷部分的数据,那么验证失败//如果秘钥改了,验证失败//token过期} }1.2.4 在utils包中添加jwt工具类 package com.geji.utils;import com.auth0.jwt.JWT; import com.auth0.jwt.algorithms.Algorithm;import java.util.Date; import java.util.Map;public class JwtUtil {private static final String KEY geji;//接收业务数据,生成token并返回public static String genToken(MapString, Object claims) {return JWT.create().withClaim(claims, claims).withExpiresAt(new Date(System.currentTimeMillis() 1000 * 60 * 60 )).sign(Algorithm.HMAC256(KEY));}//接收token,验证token,并返回业务数据public static MapString, Object parseToken(String token) {return JWT.require(Algorithm.HMAC256(KEY)).build().verify(token).getClaim(claims).asMap();}}1.3 拦截器 1.3.1 编写拦截器 package com.geji.interceptors;import com.geji.pojo.Result; import com.geji.utils.JwtUtil; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor;import java.util.Map;Component public class LoginInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//令牌验证String token request.getHeader(Authorization);//验证tokentry{MapString,Object claims JwtUtil.parseToken(token);return true;}catch (Exception e){response.setStatus(401);return false;}}}1.3.2 注册拦截器登录和注册接口需要放行 package com.geji.config;import com.geji.interceptors.LoginInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;Configuration public class WebConfig implements WebMvcConfigurer {Autowiredprivate LoginInterceptor loginInterceptor;Overridepublic void addInterceptors(InterceptorRegistry registry) {//登录接口和注册接口不拦截registry.addInterceptor(loginInterceptor).excludePathPatterns(/user/login,/user/register);} }1.4 编写controller 1.4.1 编写login controller package com.geji.controller;import com.geji.pojo.Result; import com.geji.pojo.User; import com.geji.service.UserService; import com.geji.utils.JwtUtil; import com.geji.utils.Md5Util; import jakarta.validation.constraints.Pattern; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit;RestController RequestMapping(/user) Validated public class UserController {Autowiredprivate UserService userService;PostMapping(/register)public Result register(Pattern(regexp ^\\S{5,16}$) String username, Pattern(regexp ^\\S{5,16}$) String password) {//查询用户User u userService.findByUserName(username);if (u null) {//没有占用//注册userService.register(username, password);return Result.success();} else {//占用return Result.error(用户名已被占用);}}PostMapping(/login)public ResultString login(Pattern(regexp ^\\S{5,16}$) String username, Pattern(regexp ^\\S{5,16}$) String password) {//根据用户名查询用户User loginUser userService.findByUserName(username);//判断该用户是否存在if (loginUser null) {return Result.error(用户名错误);}//判断密码是否正确 loginUser对象中的password是密文if (Md5Util.getMD5String(password).equals(loginUser.getPassword())) {//登录成功MapString, Object claims new HashMap();claims.put(id, loginUser.getId());claims.put(username, loginUser.getUsername());String token JwtUtil.genToken(claims);//把token存储到redis中 // ValueOperationsString, String operations stringRedisTemplate.opsForValue(); // operations.set(token,token,1, TimeUnit.HOURS);return Result.success(token);}return Result.error(密码错误);} }1.4.2 编写article list controller package com.geji.controller;import com.geji.pojo.Result; import com.geji.utils.JwtUtil; import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.Map;RestController RequestMapping(/article) public class ArticleController {GetMapping(/list)public ResultString list(){return Result.success(所有文章数据...);} }1.5 测试 1.5.1 获取令牌 1.5.2 带请求头 1.4.3 不带请求头
http://www.hkea.cn/news/14511697/

相关文章:

  • 课程中心网站建设内容dnf免做卡领取网站
  • 百度站长工具排名WordPress如何更改文章链接
  • 一般网站模块佛山找企业的网站
  • 深圳网站制作十年乐云seo品牌wordpress无需代码建站
  • 软件网站的服务器wap网站搜索
  • 网站开发阶段网上营销的方式
  • 百度的网站关键词被篡改网页升级未成年人自觉离开
  • 无锡做网站公司有哪些电话宁波搭建网站公司
  • 交河做网站网络营销服务企业有哪些
  • 免费网站推广平台排行榜花瓣网免费素材图库官网
  • 网站的特效代码给个网站好人有好报
  • 聊城手机站网站公司电话工商营业执照网上年审入口
  • 北京微网站开发上海高品质网站建设
  • 网站开发语言哪一种好些2023最好用的浏览器
  • 网站关于我们的页面wordpress主体怎么用
  • 运营一个网站的成本上海鸿鹄设计公司
  • 什么网站做家具出口昆明自动seo
  • 网站构建代码模板建设银行网上营业厅官方网站下载
  • 建设文明网站包括网站域名空间代理
  • wordpress的多站点网站无法访问php支持大型网站开发吗
  • 东阳网站建设yw126北京建筑工程公司大全
  • 湖北省建设厅造价官方网站百度一下电脑版首页
  • 青羊区网站建设苏州公司网站建设公司
  • 网站炫酷首页.net 网站关键字
  • 网站开发基本工资是多少网页美工设计课程
  • 品牌网站建设仁術大蝌蚪企业设计公司
  • 网站优化要多少钱莆田专业网站建设公司价格
  • jquery图片效果网站大连网站关键词排名
  • 网站首页适配规则做网站的岗位叫什么
  • 海宁网站建设公司推荐游戏制作软件免费版