为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第2天 多端全栈项目实战

标签:
SpringBoot

课程名称:多端全栈项目实战:商业级代驾全流程落地

课程章节:  华夏代驾全栈小程序实战

课程讲师: 神思者

 



课程内容:

    乘客登录


课程收获:

         https://img4.sycdn.imooc.com/631734c70001f8f809160336.jpg

        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



        https://img1.sycdn.imooc.com/63173635000182da09240303.jpg


    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 不存在 则提示用户 需要注册。


https://img1.sycdn.imooc.com//631739190001bf0714630839.jpg




https://img1.sycdn.imooc.com//6317392e0001a53b14620844.jpg















    

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 1
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消