提交 179c014a 编写于 作者: Mr.奇淼('s avatar Mr.奇淼(

删除注册页面 为注册接口修改为需要权限 防止业务漏洞

上级 95a016a7
......@@ -30,7 +30,7 @@ export const captcha = (data) => {
// @Router /base/resige [post]
export const register = (data) => {
return service({
url: "/base/register",
url: "/user/register",
method: 'post',
data: data
})
......
......@@ -3,7 +3,7 @@ import { store } from '@/store/index'
let asyncRouterFlag = 0
const whiteList = ['login', 'register']
const whiteList = ['login']
router.beforeEach(async(to, from, next) => {
const token = store.getters['user/token']
......
......@@ -12,12 +12,6 @@ const baseRouters = [{
name: 'login',
component: () =>
import ('@/view/login/login.vue')
},
{
path: '/register',
name: 'register',
component: () =>
import ('@/view/login/register.vue')
}
]
......
<template>
<div id="userLayout" class="user-layout-wrapper">
<div class="container">
<div class="top">
<div class="desc">
<img class="logo_login" src="@/assets/logo_login.png" alt="" />
</div>
<div class="header">
<a href="/">
<!-- <img src="~@/assets/logo.png" class="logo" alt="logo" /> -->
<span class="title">Gin-Vue-Admin</span>
</a>
</div>
</div>
<div class="main">
<el-form
:model="registerForm"
:rules="rules"
ref="registerForm"
@keyup.enter.native="submitForm"
>
<el-form-item prop="username">
<el-input
placeholder="请输入用户名"
v-model="registerForm.username"
>
<i
class="el-input__icon el-icon-user"
slot="suffix"
></i></el-input>
</el-form-item>
<el-form-item prop="password">
<el-input
:type="lock === 'lock' ? 'password' : 'text'"
placeholder="请输入密码"
v-model="registerForm.password"
>
<i
:class="'el-input__icon el-icon-' + lock"
@click="changeLock"
slot="suffix"
></i>
</el-input>
</el-form-item>
<el-form-item prop="rePassword" style="position:relative">
<el-input
:type="lock==='lock'?'password':'text'"
placeholder="请再次输入密码"
v-model="registerForm.rePassword"
>
<i :class="'el-input__icon el-icon-' + lock" @click="changeLock" slot="suffix"></i>
</el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm" style="width:100%"
>注 册</el-button
>
</el-form-item>
</el-form>
</div>
<div class="footer">
<div class="links">
<a href="http://doc.henrongyi.top/"
><img src="@/assets/docs.png" class="link-icon"
/></a>
<a href="https://www.yuque.com/flipped-aurora/"
><img src="@/assets/yuque.png" class="link-icon"
/></a>
<a href="https://github.com/flipped-aurora/gin-vue-admin"
><img src="@/assets/github.png" class="link-icon"
/></a>
<a href="https://space.bilibili.com/322210472"
><img src="@/assets/video.png" class="link-icon"
/></a>
</div>
<div class="copyright">
Copyright &copy; 2020 💖flipped-aurora
</div>
</div>
</div>
</div>
</template>
<script>
import { mapActions } from 'vuex'
import { register } from '@/api/user'
export default {
name: 'Register',
data() {
const ratioPassword = (rule, value, callback) => {
if (value != this.registerForm.password) {
return callback(new Error('两次密码不同'))
} else {
callback()
}
}
const checkUsername = (rule, value, callback) => {
if (value.length < 5 || value.length > 12) {
return callback(new Error('请输入正确的用户名'))
} else {
callback()
}
}
const checkPassword = (rule, value, callback) => {
if (value.length < 6 || value.length > 12) {
return callback(new Error('请输入正确的密码'))
} else {
callback()
}
}
return {
lock: 'lock',
registerForm: {
username: '',
password: '',
rePassword: ''
},
rules: {
username: [{ validator: checkUsername, trigger: 'blur' }],
password: [{ validator: checkPassword, trigger: 'blur' }],
rePassword: [{ validator: ratioPassword, trigger: 'blur' }]
}
}
},
methods: {
...mapActions('user', ['LoginIn']),
async submitForm() {
this.$refs.registerForm.validate(async v => {
if (v) {
const res = await register(this.registerForm)
if (res.code == 0) {
this.$message({
type: 'success',
message: '注册成功',
showClose: true
})
this.$router.push({name:"login"})
}
} else {
this.$message({
type: 'error',
message: '请正确填写注册信息',
showClose: true
})
return false
}
})
},
changeLock() {
this.lock === 'lock' ? (this.lock = 'unlock') : (this.lock = 'lock')
}
}
}
</script>
<style scoped lang="scss">
.login-register-box {
height: 100vh;
.login-box {
width: 40vw;
position: absolute;
left: 50%;
margin-left: -22vw;
top: 5vh;
.logo {
height: 35vh;
width: 35vh;
}
}
}
.link-icon {
width: 20px;
min-width: 20px;
height: 20px;
border-radius: 10px;
}
.vPic {
width: 33%;
height: 38px;
float: right !important;
img {
cursor: pointer;
vertical-align: middle;
}
}
.logo_login {
width: 100px;
}
#userLayout.user-layout-wrapper {
height: 100%;
position: relative;
&.mobile {
.container {
.main {
max-width: 368px;
width: 98%;
}
}
}
.container {
width: 100%;
min-height: 100%;
background: #f0f2f5 url(~@/assets/background.svg) no-repeat 50%;
background-size: 100%;
padding: 110px 0 144px;
a {
text-decoration: none;
}
.top {
text-align: center;
margin-top: -40px;
.header {
height: 44px;
line-height: 44px;
margin-bottom: 30px;
.badge {
position: absolute;
display: inline-block;
line-height: 1;
vertical-align: middle;
margin-left: -12px;
margin-top: -10px;
opacity: 0.8;
}
.logo {
height: 44px;
vertical-align: top;
margin-right: 16px;
border-style: none;
}
.title {
font-size: 33px;
color: rgba(0, 0, 0, 0.85);
font-family: Avenir, "Helvetica Neue", Arial, Helvetica, sans-serif;
font-weight: 600;
position: relative;
top: 2px;
}
}
.desc {
font-size: 14px;
color: rgba(0, 0, 0, 0.45);
margin-top: 12px;
}
}
.main {
min-width: 260px;
width: 368px;
margin: 0 auto;
}
.footer {
position: relative;
width: 100%;
margin: 40px 0 0 0;
text-align: center;
.links {
margin-bottom: 8px;
font-size: 14px;
a {
color: rgba(0, 0, 0, 0.45);
transition: all 0.3s;
&:not(:last-child) {
margin-right: 80px;
}
}
}
.copyright {
color: rgba(0, 0, 0, 0.45);
font-size: 14px;
}
}
}
}
</style>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册