Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
112Lst
coder_club
提交
c0abcaca
C
coder_club
项目概览
112Lst
/
coder_club
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
coder_club
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
c0abcaca
编写于
4月 22, 2024
作者:
112Lst
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
【add】登录打通
上级
009a9176
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
38 addition
and
17 deletion
+38
-17
club-auth/club-auth-application/club-auth-application-controller/src/main/java/com/lssst/auth/application/controller/UserController.java
...com/lssst/auth/application/controller/UserController.java
+9
-13
club-auth/club-auth-domain/src/main/java/com/lssst/auth/domain/service/AuthUserDomainService.java
.../com/lssst/auth/domain/service/AuthUserDomainService.java
+2
-0
club-auth/club-auth-domain/src/main/java/com/lssst/auth/domain/service/impl/AuthUserDomainServiceImpl.java
...t/auth/domain/service/impl/AuthUserDomainServiceImpl.java
+22
-1
club-wx/src/main/java/com/lssst/wx/handler/ReceiveTextMsgHandler.java
...main/java/com/lssst/wx/handler/ReceiveTextMsgHandler.java
+5
-3
未找到文件。
club-auth/club-auth-application/club-auth-application-controller/src/main/java/com/lssst/auth/application/controller/UserController.java
浏览文件 @
c0abcaca
...
...
@@ -13,10 +13,7 @@ import com.lssst.auth.domain.entity.AuthUserBO;
import
com.lssst.auth.domain.service.AuthUserDomainService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
...
...
@@ -105,17 +102,15 @@ public class UserController {
}
}
// 测试登录,浏览器访问: http://localhost:8081/user/doLogin?username=zhang&password=123456
@RequestMapping
(
"doLogin"
)
public
SaResult
doLogin
(
String
username
,
String
password
)
{
// 此处仅作模拟示例,真实项目需要从数据库中查询数据进行比对
if
(
"zhang"
.
equals
(
username
)
&&
"123456"
.
equals
(
password
))
{
StpUtil
.
login
(
"鸡翅"
);
SaTokenInfo
tokenInfo
=
StpUtil
.
getTokenInfo
();
// 第3步,返回给前端
return
SaResult
.
data
(
tokenInfo
);
public
Result
<
SaTokenInfo
>
doLogin
(
@RequestParam
(
"validCode"
)
String
validCode
)
{
try
{
Preconditions
.
checkArgument
(!
StringUtils
.
isBlank
(
validCode
),
"验证码不能为空!"
);
return
Result
.
ok
(
authUserDomainService
.
doLogin
(
validCode
)
);
}
catch
(
Exception
e
){
log
.
error
(
"UserController.doLogin.error:{}"
,
e
.
getMessage
(),
e
);
return
Result
.
fail
(
"用户登录失败"
);
}
return
SaResult
.
error
(
"登录失败"
);
}
// 查询登录状态,浏览器访问: http://localhost:8081/user/isLogin
...
...
@@ -124,5 +119,6 @@ public class UserController {
return
"当前会话是否登录:"
+
StpUtil
.
isLogin
();
}
}
club-auth/club-auth-domain/src/main/java/com/lssst/auth/domain/service/AuthUserDomainService.java
浏览文件 @
c0abcaca
package
com.lssst.auth.domain.service
;
import
cn.dev33.satoken.stp.SaTokenInfo
;
import
com.lssst.auth.domain.entity.AuthUserBO
;
import
java.util.List
;
...
...
@@ -24,4 +25,5 @@ public interface AuthUserDomainService {
*/
Boolean
delete
(
AuthUserBO
authUserBO
);
SaTokenInfo
doLogin
(
String
validCode
);
}
club-auth/club-auth-domain/src/main/java/com/lssst/auth/domain/service/impl/AuthUserDomainServiceImpl.java
浏览文件 @
c0abcaca
...
...
@@ -2,6 +2,8 @@ package com.lssst.auth.domain.service.impl;
import
cn.dev33.satoken.secure.SaSecureUtil
;
import
cn.dev33.satoken.stp.SaTokenInfo
;
import
cn.dev33.satoken.stp.StpUtil
;
import
com.google.gson.Gson
;
import
com.lssst.auth.common.enums.AuthUserStatusEnum
;
import
com.lssst.auth.common.enums.IsDeletedFlagEnum
;
...
...
@@ -14,6 +16,7 @@ import com.lssst.auth.infra.basic.entity.*;
import
com.lssst.auth.infra.basic.service.*
;
import
lombok.SneakyThrows
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -50,13 +53,17 @@ public class AuthUserDomainServiceImpl implements AuthUserDomainService {
private
String
authRolePrefix
=
"auth.role"
;
private
static
final
String
LOGIN_PREFIX
=
"loginCode"
;
@Override
@SneakyThrows
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
register
(
AuthUserBO
authUserBO
)
{
AuthUser
authUser
=
AuthUserBOConverter
.
INSTANCE
.
convertBOToEntity
(
authUserBO
);
authUser
.
setPassword
(
SaSecureUtil
.
md5BySalt
(
authUser
.
getPassword
(),
salt
));
if
(
StringUtils
.
isNotBlank
(
authUser
.
getPassword
()))
{
authUser
.
setPassword
(
SaSecureUtil
.
md5BySalt
(
authUser
.
getPassword
(),
salt
));
}
authUser
.
setStatus
(
AuthUserStatusEnum
.
OPEN
.
getCode
());
authUser
.
setIsDeleted
(
IsDeletedFlagEnum
.
UN_DELETED
.
getCode
());
Integer
count
=
authUserService
.
insert
(
authUser
);
...
...
@@ -112,5 +119,19 @@ public class AuthUserDomainServiceImpl implements AuthUserDomainService {
//有任何的更新,都要与缓存进行同步的修改
return
count
>
0
;
}
public
SaTokenInfo
doLogin
(
String
validCode
)
{
String
loginKey
=
redisUtil
.
buildKey
(
LOGIN_PREFIX
,
validCode
);
String
openId
=
redisUtil
.
get
(
loginKey
);
if
(
StringUtils
.
isBlank
(
openId
))
{
return
null
;
}
AuthUserBO
authUserBO
=
new
AuthUserBO
();
authUserBO
.
setUserName
(
openId
);
this
.
register
(
authUserBO
);
StpUtil
.
login
(
openId
);
SaTokenInfo
tokenInfo
=
StpUtil
.
getTokenInfo
();
return
tokenInfo
;
}
}
club-wx/src/main/java/com/lssst/wx/handler/ReceiveTextMsgHandler.java
浏览文件 @
c0abcaca
...
...
@@ -15,6 +15,8 @@ public class ReceiveTextMsgHandler implements WxChatMsgHandler {
private
static
final
String
KEY_WORD
=
"验证码"
;
private
static
final
String
LOGIN_PREFIX
=
"loginCode"
;
@Resource
private
RedisUtil
redisUtil
;
...
...
@@ -35,9 +37,9 @@ public class ReceiveTextMsgHandler implements WxChatMsgHandler {
Random
random
=
new
Random
();
int
num
=
random
.
nextInt
(
1000
);
String
numKey
=
redisUtil
.
buildKey
(
fromUserName
,
String
.
valueOf
(
num
));
redisUtil
.
setNx
(
numKey
,
"1"
,
5L
,
TimeUnit
.
MINUTES
);
String
numContent
=
"您当前的验证码是:"
+
num
+
"5分钟内有效"
;
String
numKey
=
redisUtil
.
buildKey
(
LOGIN_PREFIX
,
String
.
valueOf
(
num
));
redisUtil
.
setNx
(
numKey
,
fromUserName
,
5L
,
TimeUnit
.
MINUTES
);
String
numContent
=
"您当前的验证码是:"
+
num
+
"
!
5分钟内有效"
;
String
replyContent
=
"<xml>\n"
+
" <ToUserName><![CDATA["
+
fromUserName
+
"]]></ToUserName>\n"
+
" <FromUserName><![CDATA["
+
toUserName
+
"]]></FromUserName>\n"
+
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录