@@ -4,38 +4,37 @@ var Promise = require('bluebird');
44var security = require ( '../core/utils/security' ) ;
55var models = require ( '../models' ) ;
66var moment = require ( 'moment' ) ;
7+ var AppError = require ( './app-error' )
78
89var middleware = module . exports
910
10- const UNAUTHORIZED_TEXT = `401 Unauthorized` ;
11-
1211var checkAuthToken = function ( authToken ) {
1312 var objToken = security . parseToken ( authToken ) ;
1413 return models . Users . findOne ( {
1514 where : { identical : objToken . identical }
1615 } )
17- . then ( function ( users ) {
16+ . then ( ( users ) => {
1817 if ( _ . isEmpty ( users ) ) {
19- throw new Error ( UNAUTHORIZED_TEXT ) ;
18+ throw new AppError . Unauthorized ( ) ;
2019 }
2120 return models . UserTokens . findOne ( {
2221 where : { tokens : authToken , uid : users . id , expires_at : { gt : moment ( ) . format ( 'YYYY-MM-DD HH:mm:ss' ) } }
2322 } )
24- . then ( function ( tokenInfo ) {
23+ . then ( ( tokenInfo ) => {
2524 if ( _ . isEmpty ( tokenInfo ) ) {
26- throw new Error ( UNAUTHORIZED_TEXT )
25+ throw new AppError . Unauthorized ( )
2726 }
2827 return users ;
2928 } )
30- } ) . then ( function ( users ) {
29+ } ) . then ( ( users ) => {
3130 return users ;
3231 } )
3332}
3433
3534var checkAccessToken = function ( accessToken ) {
36- return new Promise ( function ( resolve , reject ) {
35+ return new Promise ( ( resolve , reject ) => {
3736 if ( _ . isEmpty ( accessToken ) ) {
38- throw new Error ( UNAUTHORIZED_TEXT ) ;
37+ throw new AppError . Unauthorized ( ) ;
3938 }
4039 var config = require ( '../core/config' ) ;
4140 var tokenSecret = _ . get ( config , 'jwt.tokenSecret' ) ;
@@ -47,20 +46,20 @@ var checkAccessToken = function (accessToken) {
4746 return models . Users . findOne ( {
4847 where : { id : uid }
4948 } )
50- . then ( function ( users ) {
49+ . then ( ( users ) => {
5150 if ( _ . isEmpty ( users ) ) {
52- throw new Error ( UNAUTHORIZED_TEXT ) ;
51+ throw new AppError . Unauthorized ( ) ;
5352 }
5453 if ( ! _ . eq ( hash , security . md5 ( users . get ( 'ack_code' ) ) ) ) {
55- throw new Error ( UNAUTHORIZED_TEXT ) ;
54+ throw new AppError . Unauthorized ( ) ;
5655 }
5756 resolve ( users ) ;
5857 } )
59- . catch ( function ( e ) {
58+ . catch ( ( e ) => {
6059 reject ( e ) ;
6160 } ) ;
6261 } else {
63- throw new Error ( UNAUTHORIZED_TEXT ) ;
62+ reject ( new AppError . Unauthorized ( ) ) ;
6463 }
6564 } ) ;
6665}
@@ -83,25 +82,33 @@ middleware.checkToken = function(req, res, next) {
8382 }
8483 if ( authType == 1 ) {
8584 checkAuthToken ( authToken )
86- . then ( function ( users ) {
85+ . then ( ( users ) => {
8786 req . users = users ;
8887 next ( ) ;
8988 return users ;
9089 } )
91- . catch ( function ( e ) {
92- res . status ( 401 ) . send ( e . message ) ;
90+ . catch ( ( e ) => {
91+ if ( e instanceof AppError . AppError ) {
92+ res . status ( e . status || 404 ) . send ( e . message ) ;
93+ } else {
94+ next ( e ) ;
95+ }
9396 } ) ;
9497 } else if ( authType == 2 ) {
9598 checkAccessToken ( authToken )
96- . then ( function ( users ) {
99+ . then ( ( users ) => {
97100 req . users = users ;
98101 next ( ) ;
99102 return users ;
100103 } )
101- . catch ( function ( e ) {
102- res . status ( 401 ) . send ( e . message ) ;
104+ . catch ( ( e ) => {
105+ if ( e instanceof AppError . AppError ) {
106+ res . status ( e . status || 404 ) . send ( e . message ) ;
107+ } else {
108+ next ( e ) ;
109+ }
103110 } ) ;
104111 } else {
105- res . status ( 401 ) . send ( UNAUTHORIZED_TEXT ) ;
112+ res . send ( new AppError . Unauthorized ( `Auth type not supported.` ) ) ;
106113 }
107114} ;
0 commit comments