@@ -15,50 +15,56 @@ const emailAuth = module.exports = Router()
15
15
16
16
passport . use ( new LocalStrategy ( {
17
17
usernameField : 'email'
18
- } , function ( email , password , done ) {
18
+ } , async function ( email , password , done ) {
19
19
if ( ! validator . isEmail ( email ) ) return done ( null , false )
20
- models . User . findOne ( {
21
- where : {
22
- email : email
23
- }
24
- } ) . then ( function ( user ) {
20
+
21
+ try {
22
+ const user = await models . User . findOne ( {
23
+ where : {
24
+ email : email
25
+ }
26
+ } )
27
+
25
28
if ( ! user ) return done ( null , false )
26
- if ( ! user . verifyPassword ( password ) ) return done ( null , false )
29
+ if ( ! await user . verifyPassword ( password ) ) return done ( null , false )
27
30
return done ( null , user )
28
- } ) . catch ( function ( err ) {
31
+ } catch ( err ) {
29
32
logger . error ( err )
30
33
return done ( err )
31
- } )
34
+ }
32
35
} ) )
33
36
34
37
if ( config . allowEmailRegister ) {
35
- emailAuth . post ( '/register' , urlencodedParser , function ( req , res , next ) {
38
+ emailAuth . post ( '/register' , urlencodedParser , async function ( req , res , next ) {
36
39
if ( ! req . body . email || ! req . body . password ) return response . errorBadRequest ( req , res )
37
40
if ( ! validator . isEmail ( req . body . email ) ) return response . errorBadRequest ( req , res )
38
- models . User . findOrCreate ( {
39
- where : {
40
- email : req . body . email
41
- } ,
42
- defaults : {
43
- password : req . body . password
44
- }
45
- } ) . spread ( function ( user , created ) {
46
- if ( user ) {
47
- if ( created ) {
48
- logger . debug ( 'user registered: ' + user . id )
49
- req . flash ( 'info' , "You've successfully registered, please signin." )
50
- } else {
51
- logger . debug ( 'user found: ' + user . id )
52
- req . flash ( 'error' , 'This email has been used, please try another one.' )
41
+ try {
42
+ const [ user , created ] = await models . User . findOrCreate ( {
43
+ where : {
44
+ email : req . body . email
45
+ } ,
46
+ defaults : {
47
+ password : await models . User . hashPassword ( req . body . password )
53
48
}
49
+ } )
50
+
51
+ if ( ! user ) {
52
+ req . flash ( 'error' , 'Failed to register your account, please try again.' )
54
53
return res . redirect ( config . serverURL + '/' )
55
54
}
56
- req . flash ( 'error' , 'Failed to register your account, please try again.' )
55
+
56
+ if ( created ) {
57
+ logger . debug ( 'user registered: ' + user . id )
58
+ req . flash ( 'info' , "You've successfully registered, please signin." )
59
+ } else {
60
+ logger . debug ( 'user found: ' + user . id )
61
+ req . flash ( 'error' , 'This email has been used, please try another one.' )
62
+ }
57
63
return res . redirect ( config . serverURL + '/' )
58
- } ) . catch ( function ( err ) {
64
+ } catch ( err ) {
59
65
logger . error ( 'auth callback failed: ' + err )
60
66
return response . errorInternalError ( req , res )
61
- } )
67
+ }
62
68
} )
63
69
}
64
70
0 commit comments