课程名称:多端全栈项目实战:商业级代驾全流程落地
课程章节: 华夏代驾全栈小程序实战
课程讲师: 神思者
课程内容:
乘客登录
课程收获:
1.首先编写 login 得sql 通过用户 openid 查询 tb_customer 是否存在用户
2. service 里面 通过 登录code 发送到 vx 换取 openid 然后调用 sql 查询 返回id
3.编写form 判断 传入得code是否为空
@Data@Schema(description = "登陆系统")public class LoginForm { @NotBlank(message = "code不能为空") @Schema(description = "微信小程序临时授权") private String code;}
4.编写 controller 调用service 获取 id
1.同样的 需要编写from类
2.然后编写 feign Api
@PostMapping("/customer/login") public R login(LoginForm form);
3.service 调用 feign得api 获取到 用户id
@Override public Long login(LoginForm form) { R r = cstServiceApi.login(form); String userId = MapUtil.getStr(r, "userId"); if (!StrUtil.isBlank(userId)) { return Convert.toLong(userId); } return null; }
4.controller 获取id后 判断是否 为空 如果不为空 返回token 及 提示登录成功
@PostMapping("/login") @Operation(summary = "登陆系统") public R login(@RequestBody @Valid LoginForm form) { Long customerId = customerService.login(form); if (customerId != null) { StpUtil.login(customerId); String token = StpUtil.getTokenInfo().getTokenValue(); return R.ok().put("token", token); } return R.ok(); }
前端登录方面 需要使用 uni.login
login: function() { let that = this; uni.login({ provider: 'weixin', success: function(resp) { let code = resp.code; let data = { code: code }; that.ajax(that.url.login, 'POST', data, function(resp) { if (!resp.data.hasOwnProperty('token')) { that.$refs.uToast.show({ title: '请先注册', type: 'error' }); } else { let token = resp.data.token; uni.setStorageSync('token', token); that.$refs.uToast.show({ title: '登陆成功', type: 'success', callback: function() { uni.switchTab({ url: '../' }); } }); } }); } });}
思路 : 获取code 调用接口 login 如果返回token 存在 则跳转至首页, 如果token 不存在 则提示用户 需要注册。
热门评论
你好 我想请问这个资料的解压码是啥