美文网首页
若依VUE前后分离版微信登陆

若依VUE前后分离版微信登陆

作者: 阿杰_96c5 | 来源:发表于2022-03-23 16:07 被阅读0次

    SysLoginController

    
    /**
     * 微信openID登陆
     * @param openid
     * @return
     */
    @PostMapping("/wxLogin")
    public AjaxResult wxLogin(String openid) {
       AjaxResult ajax = AjaxResult.success();
       // 生成令牌
       String token = loginService.wxLogin(openid);
       ajax.put(Constants.TOKEN, token);
       return ajax;
    }
    

    SysLoginService

    类名: com.ruoyi.framework.web.service.SysLoginService

        @Autowired
        private UserDetailsService userDetailsService;
        /**
         * 无密码登录
         * @param userName
         * @return
         */
        public String noPwdLogin(String userName){
    
            LoginUser loginUser
                    = (LoginUser)userDetailsService.loadUserByUsername(userName);
            // 记录登陆信息
            AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGIN_SUCCESS,
                    MessageUtils.message("user.login.success")));
            recordLoginInfo(loginUser.getUserId());
            return tokenService.createToken(loginUser);
        }
    
        /**
        * 微信登陆
        * @param openid
        * @return
        */
        public String wxLogin(String openid) {
    
            SysUser user = userService.selectUserByIdOpenid(openid);
            Optional.ofNullable(user).orElseThrow(
                ()->new ServiceException("openid为:" + openid + " 的用户不存在"));
            return this.noPwdLogin(user.getUserName());
    
          }
    
    /**
         * 注册用户
         */
        @PostMapping("/register")
        public AjaxResult register(@Validated @RequestBody WxUserInfo wxUser) {
    
            SysUser user = new SysUser();
            user.setUserName(wxUser.getNickname() + "_" + NanoId.randomNanoId(4));
            user.setOpenid(wxUser.getOpenid());
            user.setNickName(wxUser.getNickname());
            user.setSex(getSexFromWechatSex(wxUser.getSex()));
            user.setAvatar(wxUser.getHeadimgurl());
            user.setCreateBy("admin");
    
            user.setDeptId(101L);
            if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) {
                return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,账号已存在");
            }
            return AjaxResult.success(userService.insertUser(user));
        }
    

    微信公众平台网页微信登陆过程

    微信公众平台测试号管理配置 - 简书 (jianshu.com)

    相关文章

      网友评论

          本文标题:若依VUE前后分离版微信登陆

          本文链接:https://www.haomeiwen.com/subject/moncjrtx.html