最近参加了虎牙小程序挑战赛,在团队中的负责后端开发,由于之前没有接触过小程序开发,刚开始的时候也是一头雾水,完全找不到方向,然后自己慢慢摸索才找到一些方法,现在分享给大家。
具体SDK信息请查询虎牙小程序官网 作为后端开发,这些已有的SDK功能我们就不用再开发了,我们只需要写文档上没有的接口,而接口就有权鉴的问题。虎牙小程序是前端利用hyExt.request接口转发后端的请求,使得后端在接收请求的时候在请求头可以收到authorization信息,但作为后端,我们不用管那么多,只要解析请求头的authorization是不是能正常解密,然后写好自己的接口就行啦。
authorization是jwtToken 分成三部分
Header Payload Signature 通过英文点号"."拼接成 Header.Payload.Signature具体的大家请自行查询,这里就不细说jwt了,只跟大家说如何具体操作。 第一步 加载依赖
<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.6.0</version> </dependency>第二步 请求头接收 authorization并解析
@RequestMapping("/test") public Map test(HttpServletRequest request){ String token=request.getHeader("authorization"); Map resp = new HashMap(); try { Claims claims = Jwts.parser().setSigningKey("123456".getBytes()).parseClaimsJws(token).getBody(); String profileId= (String) claims.get("profileId"); catch(Exception n e) { resp.put("code", 583); resp.put("message", "error"); return resp; } }这里利用Jwts.parser()方法来解析jwt, 其中,setSigningKey中的“123456”为jwt第三部分的加密密钥, 在虎牙小程序中这个密钥对应的是开发者申请的appId的secret, 如果jwt用此密钥无法被解析,就会抛出异常, 解析结果Claims为jwt包含的一些信息,必比如用户id和等级等。
这就是通过jwt来验证虎牙小程序使用者的身份啦,接口中其他的功能自己写就行了,还是很容易的,因为大部分功能虎牙SDK都包括了。