feat(auth): 集成认证授权功能并优化API客户端
- 实现了完整的登录注册认证流程,包括密码验证和用户资料获取 - 集成了JWT令牌管理和自动刷新机制,支持设备ID生成和管理 - 添加了WebSocket连接配置和API基础URL环境变量设置 - 实现了API客户端的请求拦截器,包括令牌验证和错误处理逻辑 - 集成了MD5加密和认证令牌缓存机制,提升安全性 - 添加了多语言国际化支持,包括英语、中文、马来语和印尼语 - 实现了认证状态管理和本地存储持久化功能 - 添加了表单验证schema和错误处理机制,增强用户体验
This commit is contained in:
@@ -1,16 +1,19 @@
|
||||
import { useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import lengthBlueBtn from '@/assets/system/length-blue-btn.webp'
|
||||
import lengthGreenBtn from '@/assets/system/length-green-btn.webp'
|
||||
import noticeBg from '@/assets/system/notice-bg.webp'
|
||||
import { CenterModal } from '@/components/center-modal.tsx'
|
||||
import { SmartBackground } from '@/components/smart-background.tsx'
|
||||
import { SmartImage } from '@/components/smart-image.tsx'
|
||||
import { useModalStore } from '@/store'
|
||||
|
||||
function DesktopNoticeModal() {
|
||||
const [open, setOpen] = useState(true)
|
||||
const { t } = useTranslation()
|
||||
const open = useModalStore((state) => state.modals.desktopNotice)
|
||||
const setModalOpen = useModalStore((state) => state.setModalOpen)
|
||||
|
||||
function handleSubmit() {
|
||||
setOpen(false)
|
||||
setModalOpen('desktopNotice', false)
|
||||
}
|
||||
|
||||
return (
|
||||
@@ -19,7 +22,7 @@ function DesktopNoticeModal() {
|
||||
onClose={handleSubmit}
|
||||
title={
|
||||
<div className={'modal-title-glow text-design-26'}>
|
||||
PENGUMUMAN ACARA
|
||||
{t('game.modals.notice.title')}
|
||||
</div>
|
||||
}
|
||||
isNormalBg={true}
|
||||
@@ -40,13 +43,7 @@ function DesktopNoticeModal() {
|
||||
/>
|
||||
|
||||
<div className={'text-[#74B3BA] text-design-18 leading-[1.6]'}>
|
||||
"Perjanjian Lisensi dan Layanan Game" (selanjutnya disebut sebagai
|
||||
"Perjanjian ini") disepakati secara bersama-sama oleh Anda dan
|
||||
Penyedia Layanan Game; Perjanjian ini merupakan kontrak yang
|
||||
mengikat secara hukum. Anda sangat dianjurkan untuk membaca dengan
|
||||
saksama dan memahami s epenuhnya isi dari setiap klausul—khususnya
|
||||
klausul-klausul yang membebaskan atau membatasi tanggung jawab
|
||||
(selanjutnya disebut sebagai "Klausul Pembebasan"),
|
||||
{t('game.modals.notice.content')}
|
||||
</div>
|
||||
</div>
|
||||
<div className={'w-full flex justify-around'}>
|
||||
@@ -59,7 +56,7 @@ function DesktopNoticeModal() {
|
||||
'w-design-270 h-design-72 pb-design-5 flex items-center justify-center text-design-20 font-bold'
|
||||
}
|
||||
>
|
||||
Memeriksa
|
||||
{t('game.modals.notice.check')}
|
||||
</SmartBackground>
|
||||
|
||||
<SmartBackground
|
||||
@@ -71,7 +68,7 @@ function DesktopNoticeModal() {
|
||||
'w-design-270 h-design-72 pb-design-5 flex items-center justify-center text-design-20 font-bold'
|
||||
}
|
||||
>
|
||||
Memeriksa
|
||||
{t('game.modals.notice.check')}
|
||||
</SmartBackground>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user