Toggle navigation
Toggle navigation
This project
Loading...
Sign in
HyeonJun Jeon
/
Extended-Calendar
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
HyeonJun Jeon
2022-06-04 22:58:50 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
aca21452869f108d36561b83f5533dcd8b27e986
aca21452
1 parent
33b09f90
[Add] Check ID/PW
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
68 additions
and
7 deletions
src/pages/Login.js
src/styles/Login.css
src/pages/Login.js
View file @
aca2145
import
{
useEffect
}
from
"react"
;
import
{
useEffect
,
useState
}
from
"react"
;
import
{
useNavigate
}
from
"react-router-dom"
;
import
{
dataForage
}
from
"../utils/LocalForage"
;
import
"../styles/Login.css"
;
import
axios
from
"axios"
;
const
Login
=
()
=>
{
console
.
log
(
"visit Login"
);
const
[
state
,
setState
]
=
useState
({
id
:
""
,
pw
:
""
,
});
const
handleChangeState
=
(
e
)
=>
{
setState
({
...
state
,
[
e
.
target
.
name
]:
e
.
target
.
value
,
});
};
const
navigate
=
useNavigate
();
const
login
=
async
()
=>
{
if
(
true
)
{
//login success
await
dataForage
.
setItem
(
"session"
,
true
);
const
res
=
await
axios
.
post
(
"http://localhost:3001/login/"
,
{
id
:
state
.
id
,
pw
:
state
.
pw
,
});
if
(
res
.
data
===
"login failed"
)
alert
(
"ID/PW를 확인해주세요"
);
else
{
await
dataForage
.
setItem
(
"session"
,
true
);
navigate
(
"/"
);
}
};
useEffect
(()
=>
{
async
function
render
()
{
async
function
ifAlreadyLogined
()
{
if
(
await
dataForage
.
getItem
(
"session"
))
navigate
(
"/"
);
}
render
();
ifAlreadyLogined
();
},
[
navigate
]);
return
(
<
div
className
=
"Login"
>
<
button
onClick
=
{
login
}
>
로그인
<
/button
>
<
div
className
=
"idpw"
>
<
input
className
=
"id"
name
=
"id"
value
=
{
state
.
id
}
onChange
=
{
handleChangeState
}
onFocus
=
{(
e
)
=>
e
.
target
.
select
()}
placeholder
=
"E-Campus ID"
/>
<
input
className
=
"pw"
name
=
"pw"
value
=
{
state
.
pw
}
onChange
=
{
handleChangeState
}
onFocus
=
{(
e
)
=>
e
.
target
.
select
()}
placeholder
=
"E-Campus Password"
type
=
"password"
/>
<
/div
>
<
button
onClick
=
{
login
}
>
Login
<
/button
>
<
/div
>
);
};
...
...
src/styles/Login.css
0 → 100644
View file @
aca2145
.Login
{
position
:
absolute
;
left
:
50%
;
top
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
padding
:
3px
;
display
:
flex
;
}
.Login
>
button
{
padding
:
0
30px
0
30px
;
font-size
:
x-large
;
}
.idpw
{
display
:
flex
;
flex-direction
:
column
;
width
:
200px
;
margin-right
:
3px
;
}
.idpw
>
input
{
height
:
30px
;
padding
:
5px
10px
5px
10px
;
}
Please
register
or
login
to post a comment