1
1
<template >
2
- <div class =" row" >
3
- <div class =" col-lg-8 m-auto" >
4
- <card :title =" 'Log In'" >
5
- <form @submit.prevent =" login" @keydown =" form.onKeydown($event)" >
6
- <!-- Email -->
7
- <div class =" form-group row" >
8
- <label class =" col-md-3 col-form-label text-md-right" >Email</label >
9
- <div class =" col-md-7" >
10
- <input v-model =" form.email" :class =" { 'is-invalid': form.errors.has('email') }" class =" form-control" type =" email" name =" email" >
11
- <has-error :form =" form" field =" email" />
12
- </div >
13
- </div >
14
-
15
- <!-- Password -->
16
- <div class =" form-group row" >
17
- <label class =" col-md-3 col-form-label text-md-right" >Password</label >
18
- <div class =" col-md-7" >
19
- <input v-model =" form.password" :class =" { 'is-invalid': form.errors.has('password') }" class =" form-control" type =" password" name =" password" >
20
- <has-error :form =" form" field =" password" />
21
- </div >
22
- </div >
23
-
24
- <!-- Remember Me -->
25
- <div class =" form-group row" >
26
- <div class =" col-md-3" />
27
- <div class =" col-md-7 d-flex" >
28
- <checkbox v-model =" remember" name =" remember" >
29
- Remember Me
30
- </checkbox >
31
- </div >
32
- </div >
33
-
34
- <div class =" form-group row" >
35
- <div class =" col-md-7 offset-md-3 d-flex" >
36
- <v-button :loading =" form.busy" >
37
- Log In
38
- </v-button >
39
-
40
- </div >
41
- </div >
42
- </form >
43
- </card >
2
+ <div class =" row" >
3
+ <div class =" col-lg-8 m-auto" >
4
+ <b-card header =" Log In" >
5
+ <b-form @submit.prevent =" login" @keydown =" form.onKeydown($event)" >
6
+ <b-form-group
7
+ label =" Email:"
8
+ label-for =" email" >
9
+ <b-form-input type =" email" id =" email" name =" email" :class =" { 'is-invalid': form.errors.has('email') }" v-model =" form.email" ></b-form-input >
10
+ <has-error :form =" form" field =" email" />
11
+ </b-form-group >
12
+ <b-form-group
13
+ label =" Password:"
14
+ label-for =" password" >
15
+ <b-form-input type =" password" id =" password" name =" password" :class =" { 'is-invalid': form.errors.has('password') }" v-model =" form.password" ></b-form-input >
16
+ <has-error :form =" form" field =" password" />
17
+ </b-form-group >
18
+ <b-button type =" submit" variant =" primary" >Log In</b-button >
19
+ </b-form >
20
+ </b-card >
21
+ </div >
44
22
</div >
45
- </div >
46
23
</template >
47
24
48
25
<script >
49
26
import Form from ' vform'
50
- import Cookies from ' js-cookie'
51
27
52
28
export default {
53
29
components: {
54
30
},
55
31
56
32
middleware: ' guest' ,
57
33
58
- metaInfo () {
59
- return { title: ' Log In' }
60
- },
61
-
62
34
data : () => ({
63
35
form: new Form ({
64
36
email: ' ' ,
@@ -69,19 +41,15 @@ export default {
69
41
70
42
methods: {
71
43
async login () {
72
- // Submit the form.
73
44
const { data } = await this .form .post (' /api/login' )
74
45
75
- // Save the token.
76
46
this .$store .dispatch (' auth/saveToken' , {
77
47
token: data .token ,
78
48
remember: this .remember
79
49
})
80
50
81
- // Fetch the user.
82
51
await this .$store .dispatch (' auth/fetchUser' )
83
52
84
- // Redirect home.
85
53
this .redirect ()
86
54
},
87
55
0 commit comments