Browse Source

优化第三方登录,增加唯一校验

test
smallchill 5 years ago
parent
commit
8ad805fb16
  1. 1
      blade-auth/src/main/java/org/springblade/auth/granter/SocialTokenGranter.java
  2. 7
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/UserOauth.java
  3. 2
      blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java
  4. 3
      doc/sql/mysql/bladex-saber-mysql.sql
  5. 3
      doc/sql/mysql/bladex-sword-mysql.sql
  6. 4
      doc/sql/oracle/bladex-saber-oracle.sql
  7. 4
      doc/sql/oracle/bladex-sword-oracle.sql
  8. 4
      doc/sql/postgresql/bladex-saber-postgresql.sql
  9. 4
      doc/sql/postgresql/bladex-sword-postgresql.sql
  10. 3341
      doc/sql/update/mysql-update-2.5.0~2.5.1.sql
  11. 5
      doc/sql/update/mysql-update-2.5.1~2.5.2.sql
  12. 3376
      doc/sql/update/oracle-update-2.5.0~2.5.1.sql
  13. 6
      doc/sql/update/oracle-update-2.5.1~2.5.2.sql
  14. 3377
      doc/sql/update/postgresql-update-2.5.0~2.5.1.sql
  15. 6
      doc/sql/update/postgresql-update-2.5.1~2.5.2.sql

1
blade-auth/src/main/java/org/springblade/auth/granter/SocialTokenGranter.java

@ -96,6 +96,7 @@ public class SocialTokenGranter extends AbstractTokenGranter {
UserOauth userOauth = Objects.requireNonNull(BeanUtil.copy(authUser, UserOauth.class));
userOauth.setSource(authUser.getSource());
userOauth.setTenantId(tenantId);
userOauth.setUuid(authUser.getUuid());
// 远程调用,获取认证信息
R<UserInfo> result = userClient.userAuthInfo(userOauth);

7
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/UserOauth.java

@ -51,7 +51,12 @@ public class UserOauth implements Serializable {
private String tenantId;
/**
* 用户名
* 第三方系统用户ID
*/
private String uuid;
/**
* 用户ID
*/
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "用户主键")

2
blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@ -174,7 +174,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
@Override
@Transactional(rollbackFor = Exception.class)
public UserInfo userInfo(UserOauth userOauth) {
UserOauth uo = userOauthService.getOne(Wrappers.<UserOauth>query().lambda().eq(UserOauth::getSource, userOauth.getSource()).eq(UserOauth::getUsername, userOauth.getUsername()));
UserOauth uo = userOauthService.getOne(Wrappers.<UserOauth>query().lambda().eq(UserOauth::getUuid, userOauth.getUuid()).eq(UserOauth::getSource, userOauth.getSource()));
UserInfo userInfo;
if (Func.isNotEmpty(uo) && Func.isNotEmpty(uo.getUserId())) {
userInfo = this.userInfo(uo.getUserId());

3
doc/sql/mysql/bladex-saber-mysql.sql

@ -712,7 +712,8 @@ DROP TABLE IF EXISTS `blade_user_oauth`;
CREATE TABLE `blade_user_oauth` (
`id` bigint(64) NOT NULL COMMENT '主键',
`tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户ID',
`user_id` bigint(64) NULL DEFAULT NULL COMMENT '用户主键',
`uuid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方系统用户ID',
`user_id` bigint(64) NULL DEFAULT NULL COMMENT '用户ID',
`username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号',
`nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
`avatar` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',

3
doc/sql/mysql/bladex-sword-mysql.sql

@ -712,7 +712,8 @@ DROP TABLE IF EXISTS `blade_user_oauth`;
CREATE TABLE `blade_user_oauth` (
`id` bigint(64) NOT NULL COMMENT '主键',
`tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户ID',
`user_id` bigint(64) NULL DEFAULT NULL COMMENT '用户主键',
`uuid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方系统用户ID',
`user_id` bigint(64) NULL DEFAULT NULL COMMENT '用户ID',
`username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号',
`nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
`avatar` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',

4
doc/sql/oracle/bladex-saber-oracle.sql

@ -5187,6 +5187,7 @@ COMMIT;
CREATE TABLE "BLADE_USER_OAUTH" (
"ID" NUMBER(20) NOT NULL ,
"TENANT_ID" VARCHAR2(12 BYTE) ,
"UUID" VARCHAR2(64 BYTE) ,
"USER_ID" NUMBER(20) ,
"USERNAME" VARCHAR2(32 BYTE) ,
"NICKNAME" VARCHAR2(64 BYTE) ,
@ -5213,7 +5214,8 @@ DISABLE ROW MOVEMENT
;
COMMENT ON COLUMN "BLADE_USER_OAUTH"."ID" IS '主键';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."TENANT_ID" IS '租户ID';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."USER_ID" IS '用户主键';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."UUID" IS '第三方系统用户ID';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."USER_ID" IS '用户ID';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."USERNAME" IS '账号';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."NICKNAME" IS '用户名';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."AVATAR" IS '头像';

4
doc/sql/oracle/bladex-sword-oracle.sql

@ -5185,6 +5185,7 @@ COMMIT;
CREATE TABLE "BLADE_USER_OAUTH" (
"ID" NUMBER(20) NOT NULL ,
"TENANT_ID" VARCHAR2(12 BYTE) ,
"UUID" VARCHAR2(64 BYTE) ,
"USER_ID" NUMBER(20) ,
"USERNAME" VARCHAR2(32 BYTE) ,
"NICKNAME" VARCHAR2(64 BYTE) ,
@ -5211,7 +5212,8 @@ DISABLE ROW MOVEMENT
;
COMMENT ON COLUMN "BLADE_USER_OAUTH"."ID" IS '主键';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."TENANT_ID" IS '租户ID';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."USER_ID" IS '用户主键';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."UUID" IS '第三方系统用户ID';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."USER_ID" IS '用户ID';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."USERNAME" IS '账号';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."NICKNAME" IS '用户名';
COMMENT ON COLUMN "BLADE_USER_OAUTH"."AVATAR" IS '头像';

4
doc/sql/postgresql/bladex-saber-postgresql.sql

@ -4800,6 +4800,7 @@ DROP TABLE IF EXISTS "blade_user_oauth";
CREATE TABLE "blade_user_oauth" (
"id" int8 NOT NULL,
"tenant_id" varchar(12) COLLATE "pg_catalog"."default",
"uuid" varchar(64) COLLATE "pg_catalog"."default",
"user_id" int8,
"username" varchar(32) COLLATE "pg_catalog"."default",
"nickname" varchar(64) COLLATE "pg_catalog"."default",
@ -4815,7 +4816,8 @@ CREATE TABLE "blade_user_oauth" (
;
COMMENT ON COLUMN "blade_user_oauth"."id" IS '主键';
COMMENT ON COLUMN "blade_user_oauth"."tenant_id" IS '租户ID';
COMMENT ON COLUMN "blade_user_oauth"."user_id" IS '用户主键';
COMMENT ON COLUMN "blade_user_oauth"."uuid" IS '第三方系统用户ID';
COMMENT ON COLUMN "blade_user_oauth"."user_id" IS '用户ID';
COMMENT ON COLUMN "blade_user_oauth"."username" IS '账号';
COMMENT ON COLUMN "blade_user_oauth"."nickname" IS '用户名';
COMMENT ON COLUMN "blade_user_oauth"."avatar" IS '头像';

4
doc/sql/postgresql/bladex-sword-postgresql.sql

@ -4798,6 +4798,7 @@ DROP TABLE IF EXISTS "blade_user_oauth";
CREATE TABLE "blade_user_oauth" (
"id" int8 NOT NULL,
"tenant_id" varchar(12) COLLATE "pg_catalog"."default",
"uuid" varchar(64) COLLATE "pg_catalog"."default",
"user_id" int8,
"username" varchar(32) COLLATE "pg_catalog"."default",
"nickname" varchar(64) COLLATE "pg_catalog"."default",
@ -4813,7 +4814,8 @@ CREATE TABLE "blade_user_oauth" (
;
COMMENT ON COLUMN "blade_user_oauth"."id" IS '主键';
COMMENT ON COLUMN "blade_user_oauth"."tenant_id" IS '租户ID';
COMMENT ON COLUMN "blade_user_oauth"."user_id" IS '用户主键';
COMMENT ON COLUMN "blade_user_oauth"."uuid" IS '第三方系统用户ID';
COMMENT ON COLUMN "blade_user_oauth"."user_id" IS '用户ID';
COMMENT ON COLUMN "blade_user_oauth"."username" IS '账号';
COMMENT ON COLUMN "blade_user_oauth"."nickname" IS '用户名';
COMMENT ON COLUMN "blade_user_oauth"."avatar" IS '头像';

3341
doc/sql/update/mysql-update-2.5.0~2.5.1.sql

File diff suppressed because it is too large Load Diff

5
doc/sql/update/mysql-update-2.5.1~2.5.2.sql

@ -0,0 +1,5 @@
-- ----------------------------
-- 第三方系统用户ID
-- ----------------------------
ALTER TABLE `blade_user_oauth`
ADD COLUMN `uuid` varchar(64) NULL COMMENT '第三方系统用户ID' AFTER `tenant_id`;

3376
doc/sql/update/oracle-update-2.5.0~2.5.1.sql

File diff suppressed because it is too large Load Diff

6
doc/sql/update/oracle-update-2.5.1~2.5.2.sql

@ -0,0 +1,6 @@
-- ----------------------------
-- 第三方系统用户ID
-- ----------------------------
ALTER TABLE "BLADE_USER_OAUTH"
ADD ("UUID" VARCHAR2(64) );
COMMENT ON COLUMN "BLADE_USER_OAUTH"."UUID" IS '第三方系统用户ID';

3377
doc/sql/update/postgresql-update-2.5.0~2.5.1.sql

File diff suppressed because it is too large Load Diff

6
doc/sql/update/postgresql-update-2.5.1~2.5.2.sql

@ -0,0 +1,6 @@
-- ----------------------------
-- 第三方系统用户ID
-- ----------------------------
ALTER TABLE "blade_user_oauth"
ADD COLUMN "uuid" varchar(64) COLLATE "pg_catalog"."default";
COMMENT ON COLUMN "blade_user_oauth"."uuid" IS '第三方系统用户ID';
Loading…
Cancel
Save