1
1
package nanucloud.nanuid.domain.user.service
2
2
3
+ import jakarta.servlet.http.HttpServletRequest
3
4
import jakarta.transaction.Transactional
4
5
import nanucloud.nanuid.domain.application.persistence.repository.ApplicationJpaRepository
5
6
import nanucloud.nanuid.domain.auth.domain.AuthScope
@@ -13,6 +14,7 @@ import nanucloud.nanuid.domain.user.exception.*
13
14
import nanucloud.nanuid.domain.user.persistence.repository.UserJpaRepository
14
15
import nanucloud.nanuid.domain.user.presentation.dto.request.UserOAuthLoginRequest
15
16
import nanucloud.nanuid.domain.user.presentation.dto.response.UserOAuthLoginResponse
17
+ import nanucloud.nanuid.global.base.IpUtils
16
18
import nanucloud.nanuid.global.security.jwt.JwtProvider
17
19
import org.springframework.beans.factory.annotation.Value
18
20
import org.springframework.security.crypto.password.PasswordEncoder
@@ -28,6 +30,8 @@ class UserOAuthPrimaryLoginService(
28
30
private val applicationJpaRepository : ApplicationJpaRepository ,
29
31
private val permissionJpaRepository : PermissionJpaRepository ,
30
32
private val oAuthClientAuthCodeRedisRepository : OAuthClientAuthCodeRedisRepository ,
33
+ private val ipUtils : IpUtils ,
34
+ private val request : HttpServletRequest ,
31
35
@Value(" \$ {recaptcha.secret-key}" ) private val recaptchaSecretKey : String
32
36
) {
33
37
@Transactional
@@ -64,7 +68,8 @@ class UserOAuthPrimaryLoginService(
64
68
userId = user.id.toString(),
65
69
applicationId = userOAuthLoginRequest.applicationId,
66
70
authScope = userOAuthLoginRequest.authScope,
67
- deviceType = userOAuthLoginRequest.deviceType ? : DeviceType .WEB_UNKNOWN
71
+ deviceType = userOAuthLoginRequest.deviceType ? : DeviceType .WEB_UNKNOWN ,
72
+ userIp = ipUtils.getClientIp(request)
68
73
)
69
74
70
75
oAuthClientAuthCodeRedisRepository.save(
0 commit comments