1.添加微信小程序验证登录
2.添加敏感词上传 3.保存工作描述时,验证敏感词
This commit is contained in:
@@ -2,7 +2,12 @@ package com.ruoyi.framework.web.service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.ruoyi.cms.service.IAppUserService;
|
||||
import com.ruoyi.cms.util.WechatUtil;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.common.core.domain.model.LoginBody;
|
||||
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.authentication.AuthenticationManager;
|
||||
@@ -57,6 +62,10 @@ public class SysLoginService
|
||||
|
||||
@Autowired
|
||||
private TokenSiteService tokenSiteService;
|
||||
@Autowired
|
||||
WechatUtil wechatUtil;
|
||||
@Autowired
|
||||
private IAppUserService appUserService;
|
||||
/**
|
||||
* 登录验证
|
||||
*
|
||||
@@ -118,6 +127,24 @@ public class SysLoginService
|
||||
// 生成token
|
||||
return tokenSiteService.createToken(loginSiteUser);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据微信生成的
|
||||
* @param appUser
|
||||
* @return
|
||||
*/
|
||||
public String loginUserIdApp(AppUser appUser)
|
||||
{
|
||||
LoginSiteUser loginSiteUser = new LoginSiteUser();
|
||||
loginSiteUser.setUserId(appUser.getUserId());
|
||||
loginSiteUser.setUser(appUser);
|
||||
recordLoginInfo(appUser);
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(appUser.getName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
|
||||
recordLoginInfo(appUser);
|
||||
// 生成token
|
||||
return tokenSiteService.createToken(loginSiteUser);
|
||||
}
|
||||
|
||||
//单点登录
|
||||
public String loginOss(String ticket)
|
||||
{
|
||||
@@ -209,4 +236,44 @@ public class SysLoginService
|
||||
sysUser.setLoginDate(DateUtils.getNowDate());
|
||||
userService.updateUserProfile(sysUser);
|
||||
}
|
||||
|
||||
/**
|
||||
* 小程序微信授权登录
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult appLogin(LoginBody dto){
|
||||
JSONObject sessionInfo = wechatUtil.code2Session("appid", "secret", dto.getCode());
|
||||
String openid = sessionInfo.getString("openid");
|
||||
String unionid = sessionInfo.getString("unionid");
|
||||
String sessionKey = sessionInfo.getString("session_key");
|
||||
if (openid == null) {
|
||||
return AjaxResult.error("微信授权失败");
|
||||
}
|
||||
|
||||
JSONObject phoneInfo = wechatUtil.decryptPhoneNumber(dto.getEncryptedData(), sessionKey, dto.getIv());
|
||||
String phone = phoneInfo.getString("phoneNumber");
|
||||
if (phone == null) {
|
||||
return AjaxResult.error("获取手机号失败");
|
||||
}
|
||||
|
||||
// 3. 检查手机号是否已被绑定
|
||||
AppUser existUser = appUserService.getPhone(phone);
|
||||
if (existUser != null) {
|
||||
return AjaxResult.error("该手机号已注册");
|
||||
}
|
||||
|
||||
// 4. 创建用户并存储所有信息
|
||||
AppUser appUser = new AppUser();
|
||||
appUser.setOpenid(openid);
|
||||
appUser.setUnionid(unionid);
|
||||
appUser.setPhone(phone);
|
||||
appUserService.insertAppUser(appUser);
|
||||
|
||||
// 5. 生成系统令牌
|
||||
AjaxResult ajax = AjaxResult.success();
|
||||
String token = loginUserIdApp(appUser);
|
||||
ajax.put(Constants.TOKEN, token);
|
||||
return ajax;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user