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,52 +74,64 @@ 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,
|
||||||
CURR_PAGE: result.data.data.currPage,
|
CURR_PAGE: result.data.data.currPage,
|
||||||
ROW_COUNT: result.data.data.rowCount,
|
ROW_COUNT: result.data.data.rowCount,
|
||||||
START_ROW: result.data.data.startRow,
|
START_ROW: result.data.data.startRow,
|
||||||
END_ROW: result.data.data.endRow,
|
END_ROW: result.data.data.endRow,
|
||||||
COMP_CD: result.data.data.compCd,
|
COMP_CD: result.data.data.compCd,
|
||||||
AGENCY_STORE_ID: result.data.data.agencyStoreId,
|
AGENCY_STORE_ID: result.data.data.agencyStoreId,
|
||||||
STORE_ID: result.data.data.storeId,
|
STORE_ID: result.data.data.storeId,
|
||||||
STORE_NM: result.data.data.storeNm,
|
STORE_NM: result.data.data.storeNm,
|
||||||
USER_ID: result.data.data.userId,
|
USER_ID: result.data.data.userId,
|
||||||
CATEGORY: result.data.data.category,
|
CATEGORY: result.data.data.category,
|
||||||
USER_NM: result.data.data.userNm,
|
USER_NM: result.data.data.userNm,
|
||||||
USER_NM_KANA: result.data.data.userNmKana,
|
USER_NM_KANA: result.data.data.userNmKana,
|
||||||
TEL_NO: result.data.data.telNo,
|
TEL_NO: result.data.data.telNo,
|
||||||
FAX: result.data.data.fax,
|
FAX: result.data.data.fax,
|
||||||
EMAIL: result.data.data.email,
|
EMAIL: result.data.data.email,
|
||||||
LAST_EDIT_USER: result.data.data.lastEditUser,
|
LAST_EDIT_USER: result.data.data.lastEditUser,
|
||||||
STORE_GUBUN: result.data.data.storeGubun,
|
STORE_GUBUN: result.data.data.storeGubun,
|
||||||
PW_CURR: result.data.data.pwCurr,
|
PW_CURR: result.data.data.pwCurr,
|
||||||
PWD_INIT_YN: result.data.data.pwdInitYn,
|
PWD_INIT_YN: result.data.data.pwdInitYn,
|
||||||
APPR_STAT_CD: result.data.data.apprStatCd,
|
APPR_STAT_CD: result.data.data.apprStatCd,
|
||||||
LOGIN_FAIL_CNT: result.data.data.loginFailCnt,
|
LOGIN_FAIL_CNT: result.data.data.loginFailCnt,
|
||||||
LOGIN_FAIL_MIN_YN: result.data.data.loginFailMinYn,
|
LOGIN_FAIL_MIN_YN: result.data.data.loginFailMinYn,
|
||||||
PRICE_VIEW_STAT_CD: result.data.data.priceViewStatCd,
|
PRICE_VIEW_STAT_CD: result.data.data.priceViewStatCd,
|
||||||
GROUP_ID: result.data.data.groupId,
|
GROUP_ID: result.data.data.groupId,
|
||||||
STORE_LVL: result.data.data.storeLvl,
|
STORE_LVL: result.data.data.storeLvl,
|
||||||
CUST_CD: result.data.data.custCd,
|
CUST_CD: result.data.data.custCd,
|
||||||
BUILDER_NO: result.data.data.builderNo,
|
BUILDER_NO: result.data.data.builderNo,
|
||||||
IS_LOGGED_IN: true,
|
IS_LOGGED_IN: true,
|
||||||
ROLE: '',
|
ROLE: '',
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result.data.data.userId === 'T01') {
|
if (result.data.data.userId === 'T01') {
|
||||||
resultForSession.ROLE = 'T01'
|
resultForSession.ROLE = 'T01'
|
||||||
} else if (result.data.data.groupId === '60000') {
|
} else if (result.data.data.groupId === '60000') {
|
||||||
resultForSession.ROLE = 'Admin'
|
resultForSession.ROLE = 'Admin'
|
||||||
} else if (result.data.data.groupId === '70000' && result.data.data.builderNo === null) {
|
} else if (result.data.data.groupId === '70000' && result.data.data.builderNo === null) {
|
||||||
resultForSession.ROLE = 'Admin_Sub'
|
resultForSession.ROLE = 'Admin_Sub'
|
||||||
} else if (result.data.data.groupId === '70000' && result.data.data.builderNo !== null) {
|
} else if (result.data.data.groupId === '70000' && result.data.data.builderNo !== null) {
|
||||||
resultForSession.ROLE = 'Builder'
|
resultForSession.ROLE = 'Builder'
|
||||||
|
} else {
|
||||||
|
resultForSession.ROLE = 'User'
|
||||||
|
}
|
||||||
|
|
||||||
|
finalResult = {
|
||||||
|
code: 200,
|
||||||
|
message: 'Login is Succecss!!',
|
||||||
|
result: resultForSession,
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
resultForSession.ROLE = 'User'
|
finalResult = {
|
||||||
|
code: 400,
|
||||||
|
message: 'Login is Failed!!',
|
||||||
|
result: {},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return NextResponse.json({ code: 200, message: 'Login is Succecss!!', result: resultForSession })
|
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