Commit ed56c71ba18f995c934afc74b06c44e6d0a2fe35

Authored by franky
2 parents be370ba2 36b04235

Merge remote-tracking branch 'origin/feature/1.8.0-uniapp' into feature/1.8.0-uniapp

yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java
@@ -141,23 +141,16 @@ public class AuthController { @@ -141,23 +141,16 @@ public class AuthController {
141 @ApiImplicitParam(name = "type", value = "社交类型", required = true, dataTypeClass = Integer.class), 141 @ApiImplicitParam(name = "type", value = "社交类型", required = true, dataTypeClass = Integer.class),
142 @ApiImplicitParam(name = "redirectUri", value = "回调路径", dataTypeClass = String.class) 142 @ApiImplicitParam(name = "redirectUri", value = "回调路径", dataTypeClass = String.class)
143 }) 143 })
144 - public CommonResult<String> socialAuthRedirect(@RequestParam("type") Integer type, 144 + public CommonResult<String> socialLogin(@RequestParam("type") Integer type,
145 @RequestParam("redirectUri") String redirectUri) { 145 @RequestParam("redirectUri") String redirectUri) {
146 return CommonResult.success(socialUserService.getAuthorizeUrl(type, redirectUri)); 146 return CommonResult.success(socialUserService.getAuthorizeUrl(type, redirectUri));
147 } 147 }
148 148
149 - @PostMapping("/social-quick-login")  
150 - @ApiOperation("社交快捷登录,使用 code 授权码") 149 + @PostMapping("/social-login")
  150 + @ApiOperation(value = "社交快捷登录,使用 code 授权码", notes = "适合未登录的用户,但是社交账号已绑定用户")
151 @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 151 @OperateLog(enable = false) // 避免 Post 请求被记录操作日志
152 - public CommonResult<AuthLoginRespVO> socialQuickLogin(@RequestBody @Valid AuthSocialQuickLoginReqVO reqVO) {  
153 - return success(authService.socialQuickLogin(reqVO));  
154 - }  
155 -  
156 - @PostMapping("/social-bind-login")  
157 - @ApiOperation("社交绑定登录,使用 code 授权码 + 账号密码")  
158 - @OperateLog(enable = false) // 避免 Post 请求被记录操作日志  
159 - public CommonResult<AuthLoginRespVO> socialBindLogin(@RequestBody @Valid AuthSocialBindLoginReqVO reqVO) {  
160 - return success(authService.socialBindLogin(reqVO)); 152 + public CommonResult<AuthLoginRespVO> socialQuickLogin(@RequestBody @Valid AuthSocialLoginReqVO reqVO) {
  153 + return success(authService.socialLogin(reqVO));
161 } 154 }
162 155
163 } 156 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.java
1 package cn.iocoder.yudao.module.system.controller.admin.auth.vo; 1 package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
2 2
  3 +import cn.hutool.core.util.StrUtil;
  4 +import cn.iocoder.yudao.framework.common.validation.InEnum;
  5 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
3 import io.swagger.annotations.ApiModel; 6 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 7 import io.swagger.annotations.ApiModelProperty;
5 import lombok.AllArgsConstructor; 8 import lombok.AllArgsConstructor;
@@ -8,10 +11,11 @@ import lombok.Data; @@ -8,10 +11,11 @@ import lombok.Data;
8 import lombok.NoArgsConstructor; 11 import lombok.NoArgsConstructor;
9 import org.hibernate.validator.constraints.Length; 12 import org.hibernate.validator.constraints.Length;
10 13
  14 +import javax.validation.constraints.AssertTrue;
11 import javax.validation.constraints.NotEmpty; 15 import javax.validation.constraints.NotEmpty;
12 import javax.validation.constraints.Pattern; 16 import javax.validation.constraints.Pattern;
13 17
14 -@ApiModel("管理后台 - 账号密码登录 Request VO") 18 +@ApiModel(value = "管理后台 - 账号密码登录 Request VO", description = "如果登录并绑定社交用户,需要传递 social 开头的参数")
15 @Data 19 @Data
16 @NoArgsConstructor 20 @NoArgsConstructor
17 @AllArgsConstructor 21 @AllArgsConstructor
@@ -29,6 +33,8 @@ public class AuthLoginReqVO { @@ -29,6 +33,8 @@ public class AuthLoginReqVO {
29 @Length(min = 4, max = 16, message = "密码长度为 4-16 位") 33 @Length(min = 4, max = 16, message = "密码长度为 4-16 位")
30 private String password; 34 private String password;
31 35
  36 + // ========== 图片验证码相关 ==========
  37 +
32 @ApiModelProperty(value = "验证码", required = true, example = "1024", notes = "验证码开启时,需要传递") 38 @ApiModelProperty(value = "验证码", required = true, example = "1024", notes = "验证码开启时,需要传递")
33 @NotEmpty(message = "验证码不能为空", groups = CodeEnableGroup.class) 39 @NotEmpty(message = "验证码不能为空", groups = CodeEnableGroup.class)
34 private String code; 40 private String code;
@@ -37,9 +43,31 @@ public class AuthLoginReqVO { @@ -37,9 +43,31 @@ public class AuthLoginReqVO {
37 @NotEmpty(message = "唯一标识不能为空", groups = CodeEnableGroup.class) 43 @NotEmpty(message = "唯一标识不能为空", groups = CodeEnableGroup.class)
38 private String uuid; 44 private String uuid;
39 45
  46 + // ========== 绑定社交登录时,需要传递如下参数 ==========
  47 +
  48 + @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值")
  49 + @InEnum(SocialTypeEnum.class)
  50 + private Integer socialType;
  51 +
  52 + @ApiModelProperty(value = "授权码", required = true, example = "1024")
  53 + private String socialCode;
  54 +
  55 + @ApiModelProperty(value = "state", required = true, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62")
  56 + private String socialState;
  57 +
40 /** 58 /**
41 * 开启验证码的 Group 59 * 开启验证码的 Group
42 */ 60 */
43 public interface CodeEnableGroup {} 61 public interface CodeEnableGroup {}
44 62
  63 + @AssertTrue(message = "授权码不能为空")
  64 + public boolean isSocialCodeValid() {
  65 + return socialType == null || StrUtil.isNotEmpty(socialCode);
  66 + }
  67 +
  68 + @AssertTrue(message = "授权 state 不能为空")
  69 + public boolean isSocialState() {
  70 + return socialType == null || StrUtil.isNotEmpty(socialState);
  71 + }
  72 +
45 } 73 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialBindLoginReqVO.java deleted
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo;  
2 -  
3 -import cn.iocoder.yudao.framework.common.validation.InEnum;  
4 -import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;  
5 -import io.swagger.annotations.ApiModel;  
6 -import io.swagger.annotations.ApiModelProperty;  
7 -import lombok.AllArgsConstructor;  
8 -import lombok.Builder;  
9 -import lombok.Data;  
10 -import lombok.NoArgsConstructor;  
11 -import org.hibernate.validator.constraints.Length;  
12 -  
13 -import javax.validation.constraints.NotEmpty;  
14 -import javax.validation.constraints.NotNull;  
15 -import javax.validation.constraints.Pattern;  
16 -  
17 -@ApiModel("管理后台 - 社交绑定登录 Request VO,使用 code 授权码 + 账号密码")  
18 -@Data  
19 -@NoArgsConstructor  
20 -@AllArgsConstructor  
21 -@Builder  
22 -public class AuthSocialBindLoginReqVO {  
23 -  
24 - @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 UserSocialTypeEnum 枚举值")  
25 - @InEnum(SocialTypeEnum.class)  
26 - @NotNull(message = "社交平台的类型不能为空")  
27 - private Integer type;  
28 -  
29 - @ApiModelProperty(value = "授权码", required = true, example = "1024")  
30 - @NotEmpty(message = "授权码不能为空")  
31 - private String code;  
32 -  
33 - @ApiModelProperty(value = "state", required = true, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62")  
34 - @NotEmpty(message = "state 不能为空")  
35 - private String state;  
36 -  
37 - @ApiModelProperty(value = "账号", required = true, example = "yudaoyuanma")  
38 - @NotEmpty(message = "登录账号不能为空")  
39 - @Length(min = 4, max = 16, message = "账号长度为 4-16 位")  
40 - @Pattern(regexp = "^[A-Za-z0-9]+$", message = "账号格式为数字以及字母")  
41 - private String username;  
42 -  
43 - @ApiModelProperty(value = "密码", required = true, example = "buzhidao")  
44 - @NotEmpty(message = "密码不能为空")  
45 - @Length(min = 4, max = 16, message = "密码长度为 4-16 位")  
46 - private String password;  
47 -  
48 -}  
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialQuickLoginReqVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.java
1 package cn.iocoder.yudao.module.system.controller.admin.auth.vo; 1 package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
2 2
3 -import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;  
4 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
  4 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
5 import io.swagger.annotations.ApiModel; 5 import io.swagger.annotations.ApiModel;
6 import io.swagger.annotations.ApiModelProperty; 6 import io.swagger.annotations.ApiModelProperty;
7 import lombok.AllArgsConstructor; 7 import lombok.AllArgsConstructor;
@@ -12,12 +12,12 @@ import lombok.NoArgsConstructor; @@ -12,12 +12,12 @@ import lombok.NoArgsConstructor;
12 import javax.validation.constraints.NotEmpty; 12 import javax.validation.constraints.NotEmpty;
13 import javax.validation.constraints.NotNull; 13 import javax.validation.constraints.NotNull;
14 14
15 -@ApiModel("管理后台 - 社交快捷登录 Request VO,使用 code 授权码") 15 +@ApiModel("管理后台 - 社交绑定登录 Request VO,使用 code 授权码 + 账号密码")
16 @Data 16 @Data
17 @NoArgsConstructor 17 @NoArgsConstructor
18 @AllArgsConstructor 18 @AllArgsConstructor
19 @Builder 19 @Builder
20 -public class AuthSocialQuickLoginReqVO { 20 +public class AuthSocialLoginReqVO {
21 21
22 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 UserSocialTypeEnum 枚举值") 22 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 UserSocialTypeEnum 枚举值")
23 @InEnum(SocialTypeEnum.class) 23 @InEnum(SocialTypeEnum.class)
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/auth/AuthConvert.java
@@ -65,8 +65,7 @@ public interface AuthConvert { @@ -65,8 +65,7 @@ public interface AuthConvert {
65 return CollectionUtils.filterList(treeNodeMap.values(), node -> MenuIdEnum.ROOT.getId().equals(node.getParentId())); 65 return CollectionUtils.filterList(treeNodeMap.values(), node -> MenuIdEnum.ROOT.getId().equals(node.getParentId()));
66 } 66 }
67 67
68 - SocialUserBindReqDTO convert(Long userId, Integer userType, AuthSocialBindLoginReqVO reqVO);  
69 - SocialUserBindReqDTO convert(Long userId, Integer userType, AuthSocialQuickLoginReqVO reqVO); 68 + SocialUserBindReqDTO convert(Long userId, Integer userType, AuthSocialLoginReqVO reqVO);
70 69
71 SmsCodeSendReqDTO convert(AuthSmsSendReqVO reqVO); 70 SmsCodeSendReqDTO convert(AuthSmsSendReqVO reqVO);
72 71
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/security/config/SecurityConfiguration.java
@@ -24,8 +24,7 @@ public class SecurityConfiguration { @@ -24,8 +24,7 @@ public class SecurityConfiguration {
24 registry.antMatchers(buildAdminApi("/system/auth/refresh-token")).permitAll(); 24 registry.antMatchers(buildAdminApi("/system/auth/refresh-token")).permitAll();
25 // 社交登陆的接口 25 // 社交登陆的接口
26 registry.antMatchers(buildAdminApi("/system/auth/social-auth-redirect")).permitAll(); 26 registry.antMatchers(buildAdminApi("/system/auth/social-auth-redirect")).permitAll();
27 - registry.antMatchers(buildAdminApi("/system/auth/social-quick-login")).permitAll();  
28 - registry.antMatchers(buildAdminApi("/system/auth/social-bind-login")).permitAll(); 27 + registry.antMatchers(buildAdminApi("/system/auth/social-login")).permitAll();
29 // 登录登录的接口 28 // 登录登录的接口
30 registry.antMatchers(buildAdminApi("/system/auth/sms-login")).permitAll(); 29 registry.antMatchers(buildAdminApi("/system/auth/sms-login")).permitAll();
31 registry.antMatchers(buildAdminApi("/system/auth/send-sms-code")).permitAll(); 30 registry.antMatchers(buildAdminApi("/system/auth/send-sms-code")).permitAll();
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java
@@ -60,15 +60,7 @@ public interface AdminAuthService { @@ -60,15 +60,7 @@ public interface AdminAuthService {
60 * @param reqVO 登录信息 60 * @param reqVO 登录信息
61 * @return 登录结果 61 * @return 登录结果
62 */ 62 */
63 - AuthLoginRespVO socialQuickLogin(@Valid AuthSocialQuickLoginReqVO reqVO);  
64 -  
65 - /**  
66 - * 社交绑定登录,使用 code 授权码 + 账号密码  
67 - *  
68 - * @param reqVO 登录信息  
69 - * @return 登录结果  
70 - */  
71 - AuthLoginRespVO socialBindLogin(@Valid AuthSocialBindLoginReqVO reqVO); 63 + AuthLoginRespVO socialLogin(@Valid AuthSocialLoginReqVO reqVO);
72 64
73 /** 65 /**
74 * 刷新访问令牌 66 * 刷新访问令牌
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java
@@ -8,13 +8,14 @@ import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; @@ -8,13 +8,14 @@ import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
8 import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils; 8 import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
9 import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; 9 import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
10 import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; 10 import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
  11 +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
11 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*; 12 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*;
12 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; 13 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert;
13 import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; 14 import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
14 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; 15 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
15 -import cn.iocoder.yudao.module.system.enums.oauth2.OAuth2ClientConstants;  
16 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; 16 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
17 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; 17 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
  18 +import cn.iocoder.yudao.module.system.enums.oauth2.OAuth2ClientConstants;
18 import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum; 19 import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
19 import cn.iocoder.yudao.module.system.service.common.CaptchaService; 20 import cn.iocoder.yudao.module.system.service.common.CaptchaService;
20 import cn.iocoder.yudao.module.system.service.logger.LoginLogService; 21 import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
@@ -91,6 +92,12 @@ public class AdminAuthServiceImpl implements AdminAuthService { @@ -91,6 +92,12 @@ public class AdminAuthServiceImpl implements AdminAuthService {
91 // 使用账号密码,进行登录 92 // 使用账号密码,进行登录
92 AdminUserDO user = authenticate(reqVO.getUsername(), reqVO.getPassword()); 93 AdminUserDO user = authenticate(reqVO.getUsername(), reqVO.getPassword());
93 94
  95 + // 如果 socialType 非空,说明需要绑定社交用户
  96 + if (reqVO.getSocialType() != null) {
  97 + socialUserService.bindSocialUser(new SocialUserBindReqDTO(user.getId(), getUserType().getValue(),
  98 + reqVO.getSocialType(), reqVO.getSocialCode(), reqVO.getSocialState()));
  99 + }
  100 +
94 // 创建 Token 令牌,记录登录日志 101 // 创建 Token 令牌,记录登录日志
95 return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME); 102 return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME);
96 } 103 }
@@ -166,7 +173,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { @@ -166,7 +173,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
166 } 173 }
167 174
168 @Override 175 @Override
169 - public AuthLoginRespVO socialQuickLogin(AuthSocialQuickLoginReqVO reqVO) { 176 + public AuthLoginRespVO socialLogin(AuthSocialLoginReqVO reqVO) {
170 // 使用 code 授权码,进行登录。然后,获得到绑定的用户编号 177 // 使用 code 授权码,进行登录。然后,获得到绑定的用户编号
171 Long userId = socialUserService.getBindUserId(UserTypeEnum.ADMIN.getValue(), reqVO.getType(), 178 Long userId = socialUserService.getBindUserId(UserTypeEnum.ADMIN.getValue(), reqVO.getType(),
172 reqVO.getCode(), reqVO.getState()); 179 reqVO.getCode(), reqVO.getState());
@@ -185,18 +192,6 @@ public class AdminAuthServiceImpl implements AdminAuthService { @@ -185,18 +192,6 @@ public class AdminAuthServiceImpl implements AdminAuthService {
185 } 192 }
186 193
187 @Override 194 @Override
188 - public AuthLoginRespVO socialBindLogin(AuthSocialBindLoginReqVO reqVO) {  
189 - // 使用账号密码,进行登录。  
190 - AdminUserDO user = authenticate(reqVO.getUsername(), reqVO.getPassword());  
191 -  
192 - // 绑定社交用户  
193 - socialUserService.bindSocialUser(AuthConvert.INSTANCE.convert(user.getId(), getUserType().getValue(), reqVO));  
194 -  
195 - // 创建 Token 令牌,记录登录日志  
196 - return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_SOCIAL);  
197 - }  
198 -  
199 - @Override  
200 public AuthLoginRespVO refreshToken(String refreshToken) { 195 public AuthLoginRespVO refreshToken(String refreshToken) {
201 OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.refreshAccessToken(refreshToken, OAuth2ClientConstants.CLIENT_ID_DEFAULT); 196 OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.refreshAccessToken(refreshToken, OAuth2ClientConstants.CLIENT_ID_DEFAULT);
202 return AuthConvert.INSTANCE.convert(accessTokenDO); 197 return AuthConvert.INSTANCE.convert(accessTokenDO);
yudao-ui-admin/src/api/login.js
@@ -3,12 +3,15 @@ import {getRefreshToken} from &quot;@/utils/auth&quot;; @@ -3,12 +3,15 @@ import {getRefreshToken} from &quot;@/utils/auth&quot;;
3 import service from "@/utils/request"; 3 import service from "@/utils/request";
4 4
5 // 登录方法 5 // 登录方法
6 -export function login(username, password, code, uuid) { 6 +export function login(username, password, code, uuid,
  7 + socialType, socialCode, socialState) {
7 const data = { 8 const data = {
8 username, 9 username,
9 password, 10 password,
10 code, 11 code,
11 - uuid 12 + uuid,
  13 + // 社交相关
  14 + socialType, socialCode, socialState
12 } 15 }
13 return request({ 16 return request({
14 url: '/system/auth/login', 17 url: '/system/auth/login',
@@ -51,9 +54,9 @@ export function socialAuthRedirect(type, redirectUri) { @@ -51,9 +54,9 @@ export function socialAuthRedirect(type, redirectUri) {
51 } 54 }
52 55
53 // 社交快捷登录,使用 code 授权码 56 // 社交快捷登录,使用 code 授权码
54 -export function socialQuickLogin(type, code, state) { 57 +export function socialLogin(type, code, state) {
55 return request({ 58 return request({
56 - url: '/system/auth/social-quick-login', 59 + url: '/system/auth/social-login',
57 method: 'post', 60 method: 'post',
58 data: { 61 data: {
59 type, 62 type,
@@ -63,21 +66,6 @@ export function socialQuickLogin(type, code, state) { @@ -63,21 +66,6 @@ export function socialQuickLogin(type, code, state) {
63 }) 66 })
64 } 67 }
65 68
66 -// 社交绑定登录,使用 code 授权码 + + 账号密码  
67 -export function socialBindLogin(type, code, state, username, password) {  
68 - return request({  
69 - url: '/system/auth/social-bind-login',  
70 - method: 'post',  
71 - data: {  
72 - type,  
73 - code,  
74 - state,  
75 - username,  
76 - password  
77 - }  
78 - })  
79 -}  
80 -  
81 // 获取登录验证码 69 // 获取登录验证码
82 export function sendSmsCode(mobile, scene) { 70 export function sendSmsCode(mobile, scene) {
83 return request({ 71 return request({
yudao-ui-admin/src/store/modules/user.js
1 -import {login, logout, getInfo, socialQuickLogin, socialBindLogin, smsLogin} from '@/api/login' 1 +import {login, logout, getInfo, socialLogin, socialBindLogin, smsLogin} from '@/api/login'
2 import {getAccessToken, setToken, removeToken, getRefreshToken} from '@/utils/auth' 2 import {getAccessToken, setToken, removeToken, getRefreshToken} from '@/utils/auth'
3 3
4 const user = { 4 const user = {
@@ -38,8 +38,12 @@ const user = { @@ -38,8 +38,12 @@ const user = {
38 const password = userInfo.password 38 const password = userInfo.password
39 const code = userInfo.code 39 const code = userInfo.code
40 const uuid = userInfo.uuid 40 const uuid = userInfo.uuid
  41 + const socialCode = userInfo.socialCode
  42 + const socialState = userInfo.socialState
  43 + const socialType = userInfo.socialType
41 return new Promise((resolve, reject) => { 44 return new Promise((resolve, reject) => {
42 - login(username, password, code, uuid).then(res => { 45 + login(username, password, code, uuid,
  46 + socialType, socialCode, socialState).then(res => {
43 res = res.data; 47 res = res.data;
44 // 设置 token 48 // 设置 token
45 setToken(res) 49 setToken(res)
@@ -56,7 +60,7 @@ const user = { @@ -56,7 +60,7 @@ const user = {
56 const state = userInfo.state 60 const state = userInfo.state
57 const type = userInfo.type 61 const type = userInfo.type
58 return new Promise((resolve, reject) => { 62 return new Promise((resolve, reject) => {
59 - socialQuickLogin(type, code, state).then(res => { 63 + socialLogin(type, code, state).then(res => {
60 res = res.data; 64 res = res.data;
61 // 设置 token 65 // 设置 token
62 setToken(res) 66 setToken(res)
@@ -67,25 +71,7 @@ const user = { @@ -67,25 +71,7 @@ const user = {
67 }) 71 })
68 }, 72 },
69 73
70 - // 社交登录  
71 - SocialLogin2({ commit }, userInfo) {  
72 - const code = userInfo.code  
73 - const state = userInfo.state  
74 - const type = userInfo.type  
75 - const username = userInfo.username.trim()  
76 - const password = userInfo.password  
77 - return new Promise((resolve, reject) => {  
78 - socialBindLogin(type, code, state, username, password).then(res => {  
79 - res = res.data;  
80 - // 设置 token  
81 - setToken(res)  
82 - resolve()  
83 - }).catch(error => {  
84 - reject(error)  
85 - })  
86 - })  
87 - },  
88 - // 登录 74 + // 短信登录
89 SmsLogin({ commit }, userInfo) { 75 SmsLogin({ commit }, userInfo) {
90 const mobile = userInfo.mobile.trim() 76 const mobile = userInfo.mobile.trim()
91 const mobileCode = userInfo.mobileCode 77 const mobileCode = userInfo.mobileCode
yudao-ui-admin/src/views/socialLogin.vue
@@ -87,6 +87,8 @@ export default { @@ -87,6 +87,8 @@ export default {
87 username: "admin", 87 username: "admin",
88 password: "admin123", 88 password: "admin123",
89 rememberMe: false, 89 rememberMe: false,
  90 + code: "",
  91 + uuid: "",
90 }, 92 },
91 loginRules: { 93 loginRules: {
92 username: [ 94 username: [
@@ -170,16 +172,20 @@ export default { @@ -170,16 +172,20 @@ export default {
170 removeUsername() 172 removeUsername()
171 removePassword() 173 removePassword()
172 } 174 }
173 - this.$store.dispatch("SocialLogin2", {  
174 - code: this.code,  
175 - state: this.state,  
176 - type: this.type, 175 + this.$store.dispatch("Login", {
  176 + socialCode: this.code,
  177 + socialState: this.state,
  178 + socialType: this.type,
  179 + // 账号密码登录
177 username: this.loginForm.username, 180 username: this.loginForm.username,
178 - password: this.loginForm.password 181 + password: this.loginForm.password,
  182 + code: this.loginForm.code,
  183 + uuid: this.loginForm.uuid,
179 }).then(() => { 184 }).then(() => {
180 this.$router.push({ path: this.redirect || "/" }).catch(()=>{}); 185 this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
181 }).catch(() => { 186 }).catch(() => {
182 this.loading = false; 187 this.loading = false;
  188 + this.getCode()
183 }); 189 });
184 } 190 }
185 }); 191 });