@@ -15,42 +15,16 @@ module.exports = app => {
15
15
} ) ) ;
16
16
17
17
app . passport . verify ( async ( ctx , user ) => {
18
- let newUser ;
19
18
if ( user . provider === 'sms' ) {
20
- const { mobile, captcha } = user ;
21
- const isValid = await ctx . service . sms . checkCaptcha ( { mobile, captcha } ) ;
22
-
23
- if ( ! isValid ) {
24
- ctx . throw ( 400 , '验证码不正确' , { code : 'WRONG_CAPTCHA' , errors : { mobile, captcha } } ) ;
25
- }
26
-
27
- const existsUser = await ctx . service . user . find ( { mobile } ) ;
28
- if ( existsUser ) return existsUser ;
29
-
30
- newUser = await ctx . service . user . create ( { mobile } ) ;
19
+ return await ctx . service . user . loginBySMS ( user ) ;
31
20
} else if ( user . provider === 'wechat' ) {
32
- const wechatUser = { } ;
33
- [ 'openid' , 'nickname' , 'sex' , 'city' , 'province' , 'country' , 'headimgurl' ] . forEach ( key => {
34
- wechatUser [ 'wechat_' + key ] = user [ key ] ;
35
- } ) ;
36
-
37
- const wechat_openid = wechatUser . wechat_openid ;
38
- const existsUser = await ctx . service . user . find ( { wechat_openid } ) ;
39
- if ( existsUser ) return existsUser ;
40
- newUser = await ctx . service . user . create ( wechatUser ) ;
21
+ return await ctx . service . user . loginByWechat ( user ) ;
41
22
}
42
-
43
- if ( newUser ) {
44
- // 新的用户,自动帮用户创建一个钱包
45
- ctx . service . wallet . create ( { user_id : newUser . id , digiccy : 'ETH' } ) ;
46
- return newUser ;
47
- }
48
-
49
23
ctx . throw ( 500 , '无效的Passport Provider:' + user . provider , { code : 'INVALID_PASSPORT_PROVIDER' , errors : user } ) ;
50
24
} ) ;
51
25
52
26
app . passport . serializeUser ( async ( ctx , user ) => {
53
- return user ;
27
+ return user . get ( ) ; // get() can get full data, toJSON() only returns non sensitive data
54
28
} ) ;
55
29
56
30
app . passport . deserializeUser ( async ( ctx , user ) => {
0 commit comments