localstorage - woowa-turkey/miniprojects-2019 GitHub Wiki
-
ํน์ง
- ์ง์ ์ง์ฐ์ง ์์ผ๋ฉด ๋ง๋ฃ๊ธฐ๊ฐ์ด ์์
- ๋๋ฉ์ธ๋ง๋ค ๋ณ๋๋ก ๋ก์ปฌ์คํ ๋ฆฌ์ง ์์ฑ
-
์ฅ์
๋ถ๋ฆฌ๋ js ์ฝ๋์์ ๋ก๊ทธ์ธ ์ ์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ฉ์ดํ๋ค.
-
๋จ์
view ์์ ๋๋๋งํ ๋ js์์ dom ์ฐพ์์ ๊ฐ์ ๋ณ๊ฒฝํด์ค์ผํ๋ค.
String ๋ง ์ ์ฅ ๊ฐ๋ฅํด์ id, name ,email์ ๋ณ๋๋ก ์ ์ฅํด์ค์ผ ํ๋ค.
localstorage ๊ฐ ๋ณ๊ฒฝ๋ง์ผ๋ก ๋ก๊ทธ์ธ ์ ๋ณด ์์ ์ด ๊ฐ๋ฅํ๋ค. -> ์ค๊ฐ์ ๊ฐ์ด ๋ฐ๋๋ฉด ๋ค์ ๋ก๊ทธ์ธํ ๋๊น์ง ์๋ฒ ์ธ์ ์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ๋ชจ๋ฅธ๋ค.
- ํน์ง
- ์ธ์ ์ด ๋๋๋ฉด ์ข ๋ฃ
- ๋ธ๋ผ์ฐ์ ์ข ๋ฃ์ ์ธ์ ์ข ๋ฃ
- ๋ธ๋ผ์ฐ์ ๊ฐ ๋ค๋ฅด๋ฉด ์๋ก ๋ค๋ฅธ ์์ญ
- ๋๋ฉ์ธ๋ง๋ค ๋ณ๋๋ก ์ธ์ ์คํ ๋ฆฌ์ง ์์ฑ
//login
//login ์ฑ๊ณต์ UserSession ๊ฐ์ฒด๋ฅผ ๋๊ฒจ์ค
let res = $.ajax({
url:"/login",
type:"POST",
async: false,
data: form_data,
headers: header
})
if (res.status == 200) {
localStorage.loginUserId = res.responseJSON.id
localStorage.loginUserName = res.responseJSON.name
localStorage.loginUserEmail = res.responseJSON.email
alert('๋ก๊ทธ์ธ๋์์ต๋๋ค.')
window.location.href="/"
} else if (res.status == 400) {
alert(res.responseJSON.message)
}
// view(html) ์ ์ฉ ์์
<div class="user-info mrg-left-5">
<span class="name pdd-right-5 text-white text-bold" id="current-user-name">ํ์ฌ ๋ก๊ทธ์ธ๋ ์ฌ์ฉ์ ์ด๋ฆ ์์น</span>
</div>
const currentUserName = document.getElementById("current-user-name")
currentUserName.innerHTML = localStorage.loginUserName
//logout
$.ajax({
url:"/logout",
type:"POST",
async:false,
dataType:'text',
error:function(request,status,error){
alert('๋ก๊ทธ์ธ ์ํ๊ฐ ์๋๋๋ค.')
},
success:function(data){
localStorage.removeItem('loginUserId');
localStorage.removeItem('loginUserName');
localStorage.removeItem('loginUserEmail');
alert('๋ก๊ทธ์์ ๋์์ต๋๋ค.')
}
})
-
์ฅ์
view(html)์ ๋ฐ๋ก ๋๋๋ง ๊ฐ๋ฅํ๋ค
-
๋จ์
์ธ๋ถ js ํ์ผ์ model์ ๋ณด๋ฅผ ๋ฐ๋ก ๋๋๋งํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ js์ ์ ์ฉ์ด ๋ถํธํ๋ค.
html ํ๋จ์์ ๋๋๋งํด์ ๋ณ์๋ก ์ ์ธํ ํ์ ์์๋ฅผ ๋ง์ถฐ ์ฌ์ฉํด์ผ ํ๋ค.
@GetMapping
public String index(Map<String, Object> model) {
model.put("loginUser", UserSession)
return index;
}
...
<div class="user-info mrg-left-5">
<span class="name pdd-right-5 text-white text-bold" th:text="${session.loginUser.name}"></span>
</div>
...
<script th:inline="javascript">
var loginUserId = [[${session.loginUser.id}]];
var loginUserName = [[${session.loginUser.name}]];
var loginUserEmail = [[${session.loginUser.email}]];
</script>
<script src="/js/script.js"></script>
...
js์์ ์ฌ์ฉํ ์ผ์ด ๋ง์ ์ ๋ณด๋ localstorage๋ฅผ ํ์ฉ
๋จ์ํ view์ renderingํ๋ ์ฉ๋๋ก๋ง ์ฌ์ฉํ ๊ฑฐ๋ผ๋ฉด Model์ ์ ๋ณด๋ฅผ ๋ด์ ๋๊ฒจ์ฃผ๋ ๋ฐฉ์์ผ๋ก ํ์ฉ
- ์ฐธ๊ณ : LocalStorage