refactor: 优化前端认证服务
- 优化AuthService认证服务 - 更新AuthModels数据模型 - 优化SmsCodeInput短信验证码输入组件
This commit is contained in:
@@ -52,12 +52,13 @@ class AuthService {
|
||||
phone: String,
|
||||
password: String,
|
||||
nickname: String,
|
||||
email: String? = null
|
||||
email: String? = null,
|
||||
agreedToTerms: Boolean
|
||||
): Result<TokenResponse> {
|
||||
return try {
|
||||
val response = client.post("$AUTH_BASE/register") {
|
||||
contentType(ContentType.Application.Json)
|
||||
setBody(RegisterRequest(phone, password, nickname, email))
|
||||
setBody(RegisterRequest(phone, password, nickname, email, agreedToTerms))
|
||||
}
|
||||
|
||||
when (response.status) {
|
||||
@@ -102,11 +103,11 @@ class AuthService {
|
||||
/**
|
||||
* 用户登录
|
||||
*/
|
||||
suspend fun login(phone: String, password: String): Result<TokenResponse> {
|
||||
suspend fun login(phone: String, password: String, agreedToTerms: Boolean): Result<TokenResponse> {
|
||||
return try {
|
||||
val response = client.post("$AUTH_BASE/login") {
|
||||
contentType(ContentType.Application.Json)
|
||||
setBody(LoginRequest(phone, password))
|
||||
setBody(LoginRequest(phone, password, agreedToTerms))
|
||||
}
|
||||
|
||||
when (response.status) {
|
||||
@@ -327,11 +328,11 @@ class AuthService {
|
||||
/**
|
||||
* 验证码登录
|
||||
*/
|
||||
suspend fun loginWithSms(phone: String, code: String): Result<TokenResponse> {
|
||||
suspend fun loginWithSms(phone: String, code: String, agreedToTerms: Boolean): Result<TokenResponse> {
|
||||
return try {
|
||||
val response = client.post("$AUTH_BASE/login/sms") {
|
||||
contentType(ContentType.Application.Json)
|
||||
setBody(SmsLoginRequest(phone, code))
|
||||
setBody(SmsLoginRequest(phone, code, agreedToTerms))
|
||||
}
|
||||
|
||||
when (response.status) {
|
||||
@@ -364,12 +365,13 @@ class AuthService {
|
||||
code: String,
|
||||
password: String,
|
||||
nickname: String,
|
||||
email: String? = null
|
||||
email: String? = null,
|
||||
agreedToTerms: Boolean
|
||||
): Result<TokenResponse> {
|
||||
return try {
|
||||
val response = client.post("$AUTH_BASE/register/sms") {
|
||||
contentType(ContentType.Application.Json)
|
||||
setBody(SmsRegisterRequest(phone, code, password, nickname, email))
|
||||
setBody(SmsRegisterRequest(phone, code, password, nickname, email, agreedToTerms))
|
||||
}
|
||||
|
||||
when (response.status) {
|
||||
|
||||
@@ -12,14 +12,16 @@ data class RegisterRequest(
|
||||
val phone: String,
|
||||
val password: String,
|
||||
val nickname: String,
|
||||
val email: String? = null
|
||||
val email: String? = null,
|
||||
val agreed_to_terms: Boolean
|
||||
)
|
||||
|
||||
// 登录请求
|
||||
@Serializable
|
||||
data class LoginRequest(
|
||||
val phone: String,
|
||||
val password: String
|
||||
val password: String,
|
||||
val agreed_to_terms: Boolean
|
||||
)
|
||||
|
||||
// 刷新令牌请求
|
||||
@@ -91,7 +93,8 @@ data class SmsResponse(
|
||||
@Serializable
|
||||
data class SmsLoginRequest(
|
||||
val phone: String,
|
||||
val code: String
|
||||
val code: String,
|
||||
val agreed_to_terms: Boolean
|
||||
)
|
||||
|
||||
// 验证码注册请求
|
||||
@@ -101,7 +104,8 @@ data class SmsRegisterRequest(
|
||||
val code: String,
|
||||
val password: String,
|
||||
val nickname: String,
|
||||
val email: String? = null
|
||||
val email: String? = null,
|
||||
val agreed_to_terms: Boolean
|
||||
)
|
||||
|
||||
// 重置密码请求
|
||||
|
||||
@@ -53,13 +53,14 @@ fun SmsCodeInput(
|
||||
modifier = modifier,
|
||||
decorationBox = { innerTextField ->
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.spacedBy(8.dp),
|
||||
modifier = Modifier.wrapContentWidth(),
|
||||
horizontalArrangement = Arrangement.spacedBy(6.dp),
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
repeat(codeLength) { index ->
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.size(48.dp)
|
||||
.size(40.dp)
|
||||
.border(
|
||||
width = 2.dp,
|
||||
color = when {
|
||||
@@ -68,14 +69,14 @@ fun SmsCodeInput(
|
||||
index < code.length -> MaterialTheme.colorScheme.primary.copy(alpha = 0.5f)
|
||||
else -> MaterialTheme.colorScheme.outline
|
||||
},
|
||||
shape = RoundedCornerShape(12.dp)
|
||||
shape = RoundedCornerShape(10.dp)
|
||||
),
|
||||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
Text(
|
||||
text = if (index < code.length) code[index].toString() else "",
|
||||
style = TextStyle(
|
||||
fontSize = 24.sp,
|
||||
fontSize = 20.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
color = if (enabled) {
|
||||
MaterialTheme.colorScheme.onSurface
|
||||
|
||||
Reference in New Issue
Block a user