refactor: Enhance authentication API and login component functionality
- Updated authentication API to improve response handling and session management. - Refactored login component to include validation and keyboard event handling for login submission. - Improved user feedback by displaying alerts for login success and failure messages.
This commit is contained in:
parent
a5696984fc
commit
29e7675ada
@ -15,7 +15,9 @@ export async function POST(request: Request) {
|
|||||||
})
|
})
|
||||||
console.log('🚀 ~ result ~ result:', result.data)
|
console.log('🚀 ~ result ~ result:', result.data)
|
||||||
|
|
||||||
if (result.data.result.code === 200) {
|
let finalResult = {}
|
||||||
|
|
||||||
|
if (result.data.result.resultCode === 'S') {
|
||||||
tracking({
|
tracking({
|
||||||
url: `/api/auth/login`,
|
url: `/api/auth/login`,
|
||||||
data: JSON.stringify({
|
data: JSON.stringify({
|
||||||
@ -72,7 +74,6 @@ export async function POST(request: Request) {
|
|||||||
console.log('end session edit!')
|
console.log('end session edit!')
|
||||||
|
|
||||||
await session.save()
|
await session.save()
|
||||||
}
|
|
||||||
|
|
||||||
const resultForSession = {
|
const resultForSession = {
|
||||||
LANG_CD: result.data.data.langCd,
|
LANG_CD: result.data.data.langCd,
|
||||||
@ -119,5 +120,18 @@ export async function POST(request: Request) {
|
|||||||
resultForSession.ROLE = 'User'
|
resultForSession.ROLE = 'User'
|
||||||
}
|
}
|
||||||
|
|
||||||
return NextResponse.json({ code: 200, message: 'Login is Succecss!!', result: resultForSession })
|
finalResult = {
|
||||||
|
code: 200,
|
||||||
|
message: 'Login is Succecss!!',
|
||||||
|
result: resultForSession,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
finalResult = {
|
||||||
|
code: 400,
|
||||||
|
message: 'Login is Failed!!',
|
||||||
|
result: {},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NextResponse.json(finalResult)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,6 +39,26 @@ export default function Login() {
|
|||||||
return emailRegex.test(email)
|
return emailRegex.test(email)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleLogin = () => {
|
||||||
|
if (validateLogin()) {
|
||||||
|
setIsLogin(true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
handleLogin()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const validateLogin = () => {
|
||||||
|
if (account.loginId === '' || account.pwd === '') {
|
||||||
|
alert('Please enter your ID and password.')
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
interface LoginData {
|
interface LoginData {
|
||||||
code: number
|
code: number
|
||||||
message: string | null
|
message: string | null
|
||||||
@ -85,6 +105,9 @@ export default function Login() {
|
|||||||
...loginData?.result,
|
...loginData?.result,
|
||||||
})
|
})
|
||||||
router.push('/')
|
router.push('/')
|
||||||
|
} else if (loginData?.code === 400) {
|
||||||
|
alert(loginData?.message)
|
||||||
|
setAccount({ loginId: '', pwd: '' })
|
||||||
}
|
}
|
||||||
}, [loginData])
|
}, [loginData])
|
||||||
|
|
||||||
@ -106,6 +129,7 @@ export default function Login() {
|
|||||||
className="login-frame"
|
className="login-frame"
|
||||||
placeholder="Input Frame ID"
|
placeholder="Input Frame ID"
|
||||||
value={account.loginId}
|
value={account.loginId}
|
||||||
|
onKeyDown={(e) => handleKeyDown(e)}
|
||||||
onChange={(e) => setAccount({ loginId: e.target.value })}
|
onChange={(e) => setAccount({ loginId: e.target.value })}
|
||||||
/>
|
/>
|
||||||
<button className="login-icon" onClick={() => setAccount({ loginId: '' })}>
|
<button className="login-icon" onClick={() => setAccount({ loginId: '' })}>
|
||||||
@ -120,6 +144,7 @@ export default function Login() {
|
|||||||
className="login-frame"
|
className="login-frame"
|
||||||
placeholder="Input Frame PW"
|
placeholder="Input Frame PW"
|
||||||
value={account.pwd}
|
value={account.pwd}
|
||||||
|
onKeyDown={(e) => handleKeyDown(e)}
|
||||||
onChange={(e) => setAccount({ pwd: e.target.value })}
|
onChange={(e) => setAccount({ pwd: e.target.value })}
|
||||||
/>
|
/>
|
||||||
<button className={`login-icon ${pwShow ? 'act' : ''}`} onClick={() => setPwShow(!pwShow)}>
|
<button className={`login-icon ${pwShow ? 'act' : ''}`} onClick={() => setPwShow(!pwShow)}>
|
||||||
@ -141,7 +166,7 @@ export default function Login() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="login-btn-wrap">
|
<div className="login-btn-wrap">
|
||||||
<button className="btn-frame icon login" onClick={() => setIsLogin(true)}>
|
<button className="btn-frame icon login" onClick={handleLogin}>
|
||||||
お問い合わせ <i className="btn-arr"></i>
|
お問い合わせ <i className="btn-arr"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user