parent
dfff087598
commit
74808ae9fa
8 changed files with 383 additions and 35 deletions
Binary file not shown.
@ -0,0 +1,121 @@ |
||||
<template> |
||||
<BlogHeader /> |
||||
<div class="grid"> |
||||
<div id="login"> |
||||
<h3>登录账号</h3> |
||||
<form> |
||||
<div class="form-elem"> |
||||
<span>账号: </span> |
||||
<input |
||||
v-model="username" |
||||
type="text" |
||||
placeholder="请输入用户名" |
||||
/> |
||||
</div> |
||||
|
||||
<div class="form-elem"> |
||||
<span>密码: </span> |
||||
<input |
||||
type="password" |
||||
v-model="password" |
||||
placeholder="输入密码" |
||||
autocomplete="true" |
||||
/> |
||||
</div> |
||||
|
||||
<div class="form-elem"> |
||||
<button v-on:click.prevent="login">登录</button> |
||||
</div> |
||||
</form> |
||||
</div> |
||||
</div> |
||||
<BlogFooter /> |
||||
</template> |
||||
|
||||
<script> |
||||
import { ref } from "vue"; |
||||
import BlogHeader from "@/components/BlogHeader.vue"; |
||||
import BlogFooter from "@/components/BlogFooter.vue"; |
||||
import $ from "jquery"; |
||||
import router from "@/router/index"; |
||||
|
||||
export default { |
||||
name: "LoginView", |
||||
components: { |
||||
BlogHeader, |
||||
BlogFooter, |
||||
}, |
||||
setup() { |
||||
let username = ref(""); |
||||
let password = ref(""); |
||||
const current = (new Date()).getTime(); |
||||
console.log(current); |
||||
|
||||
const login = () => { |
||||
$.ajax({ |
||||
url: "http://127.0.0.1:6789/api/token/", |
||||
type: "POST", |
||||
data: { |
||||
username: username.value, |
||||
password: password.value, |
||||
}, |
||||
success(resp) { |
||||
// 将token保存到localStorage |
||||
const storage = localStorage; |
||||
|
||||
const current = (new Date()).getTime(); |
||||
const expiredTime = current + 60000; |
||||
storage.setItem('access_blog', resp.access); |
||||
storage.setItem('refresh_blog', resp.refresh); |
||||
storage.setItem('expired_time', expiredTime); |
||||
storage.setItem('username_blog', username.value); |
||||
console.log("登录时间: ",new Date().toLocaleString()); |
||||
router.push({ name: "home" }); |
||||
|
||||
}, |
||||
error(resp) { |
||||
console.log(resp); |
||||
}, |
||||
}); |
||||
}; |
||||
|
||||
return { |
||||
username, |
||||
password, |
||||
login, |
||||
}; |
||||
}, |
||||
}; |
||||
</script> |
||||
|
||||
<style scoped> |
||||
#grid { |
||||
display: grid; |
||||
grid-template-columns: 1fr 1fr; |
||||
} |
||||
|
||||
#login { |
||||
text-align: center; |
||||
} |
||||
.form-elem { |
||||
padding: 10px; |
||||
} |
||||
input { |
||||
height: 25px; |
||||
padding-left: 10px; |
||||
} |
||||
button { |
||||
height: 35px; |
||||
cursor: pointer; |
||||
border: none; |
||||
outline: none; |
||||
background: gray; |
||||
color: whitesmoke; |
||||
border-radius: 5px; |
||||
width: 60px; |
||||
} |
||||
|
||||
span { |
||||
font-weight: bold; |
||||
} |
||||
</style> |
@ -0,0 +1,138 @@ |
||||
<template> |
||||
<BlogHeader /> |
||||
<div class="grid"> |
||||
<div id="signup"> |
||||
<h3>注册帐号</h3> |
||||
<form action=""> |
||||
<div class="form-elem"> |
||||
<span>账号: </span> |
||||
<input |
||||
v-model="username" |
||||
type="text" |
||||
placeholder="请输入用户名" |
||||
/> |
||||
</div> |
||||
|
||||
<div class="form-elem"> |
||||
<span>密码: </span> |
||||
<input |
||||
v-model="password" |
||||
type="password" |
||||
placeholder="请输入密码" |
||||
autocomplete="true" |
||||
/> |
||||
</div> |
||||
|
||||
<div class="form-elem"> |
||||
<span>确认: </span> |
||||
<input |
||||
v-model="conform_password" |
||||
type="password" |
||||
placeholder="请再输入一次密码" |
||||
autocomplete="true" |
||||
/> |
||||
</div> |
||||
|
||||
<div class="form-elem"> |
||||
<button v-on:click.prevent="signup">注册</button> |
||||
</div> |
||||
</form> |
||||
</div> |
||||
</div> |
||||
<BlogFooter /> |
||||
</template> |
||||
|
||||
<script> |
||||
import { ref } from "vue"; |
||||
import BlogHeader from "@/components/BlogHeader.vue"; |
||||
import BlogFooter from "@/components/BlogFooter.vue"; |
||||
import $ from "jquery"; |
||||
import router from "@/router/index"; |
||||
|
||||
export default { |
||||
name: "RegisterView", |
||||
components: { |
||||
BlogHeader, |
||||
BlogFooter, |
||||
}, |
||||
setup() { |
||||
let username = ref(""); |
||||
let password = ref(""); |
||||
let conform_password = ref(""); |
||||
|
||||
const signup = () => { |
||||
if ( |
||||
username.value === "" || |
||||
password.value === "" || |
||||
conform_password.value === "" |
||||
) { |
||||
window.alert("用户名或者密码为空"); |
||||
return; |
||||
} |
||||
|
||||
if (password.value !== conform_password.value) { |
||||
window.alert("两次密码输入不一致!"); |
||||
return; |
||||
} |
||||
|
||||
$.ajax({ |
||||
url: "http://127.0.0.1:6789/api/user/", |
||||
type: "POST", |
||||
data: { |
||||
username: username.value, |
||||
password: password.value, |
||||
}, |
||||
success(resp) { |
||||
console.log(resp); |
||||
window.alert("注册成功!即将跳转到登陆页面!"); |
||||
setTimeout(() => { |
||||
router.push({ name: "login" }); // 注册成功,跳转登录页面 |
||||
}, 200); |
||||
}, |
||||
error(resp) { |
||||
console.log(resp); |
||||
}, |
||||
}); |
||||
}; |
||||
|
||||
return { |
||||
username, |
||||
password, |
||||
conform_password, |
||||
signup, |
||||
}; |
||||
}, |
||||
}; |
||||
</script> |
||||
|
||||
<style scoped> |
||||
#grid { |
||||
display: grid; |
||||
grid-template-columns: 1fr 1fr; |
||||
} |
||||
#signup { |
||||
text-align: center; |
||||
} |
||||
|
||||
.form-elem { |
||||
padding: 10px; |
||||
} |
||||
input { |
||||
height: 25px; |
||||
padding-left: 10px; |
||||
} |
||||
button { |
||||
height: 35px; |
||||
cursor: pointer; |
||||
border: none; |
||||
outline: none; |
||||
background: gray; |
||||
color: whitesmoke; |
||||
border-radius: 5px; |
||||
width: 60px; |
||||
} |
||||
|
||||
span { |
||||
font-weight: bold; |
||||
} |
||||
</style> |
Loading…
Reference in new issue