若依VUE前后分离spring boot版微信登陆(免密登录)

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));
    }

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值