@@ -3,11 +3,9 @@ var urlib = require('url')
33var qs = require ( 'qs' )
44
55var config = require ( '../config' )
6- var flows = {
7- 1 : require ( '../flow/oauth1' ) ,
8- 2 : require ( '../flow/oauth2' ) ,
9- response : require ( '../response' )
10- }
6+ var oauth1 = require ( '../flow/oauth1' )
7+ var oauth2 = require ( '../flow/oauth2' )
8+ var response = require ( '../response' )
119
1210
1311module . exports = function ( _config ) {
@@ -49,56 +47,52 @@ module.exports = function (_config) {
4947 } )
5048
5149 function connect ( req , res ) {
52- var grant = ( req . session || req . yar ) . get ( 'grant' )
53- var provider = config . provider ( app . config , grant )
54- var flow = flows [ provider . oauth ]
50+ var session = ( req . session || req . yar ) . get ( 'grant' )
51+ var provider = config . provider ( app . config , session )
5552
5653 var transport = ( data ) => {
5754 if ( ! provider . callback ) {
5855 res ( qs . stringify ( data ) )
5956 }
6057 else if ( ! provider . transport || provider . transport === 'querystring' ) {
61- res . redirect ( ( provider . callback || '' ) + '?' + qs . stringify ( data ) )
58+ res . redirect ( ` ${ provider . callback } ? ${ qs . stringify ( data ) } ` )
6259 }
6360 else if ( provider . transport === 'session' ) {
64- grant . response = data
65- ; ( req . session || req . yar ) . set ( 'grant' , grant )
66- res . redirect ( provider . callback || '' )
61+ session . response = data
62+ ; ( req . session || req . yar ) . set ( 'grant' , session )
63+ res . redirect ( provider . callback )
6764 }
6865 }
69- var success = ( url ) => res . redirect ( url )
70- var error = ( err ) => transport ( { error : err . body } )
7166
7267 if ( / ^ 1 $ / . test ( provider . oauth ) ) {
73- flow . request ( provider )
68+ oauth1 . request ( provider )
7469 . then ( ( { body} ) => {
75- grant . request = body
76- flow . authorize ( provider , body )
77- . then ( success )
78- . catch ( error )
70+ session . request = body
71+ oauth1 . authorize ( provider , body )
72+ . then ( ( url ) => res . redirect ( url ) )
73+ . catch ( transport )
7974 } )
80- . catch ( error )
75+ . catch ( transport )
8176 }
8277
8378 else if ( / ^ 2 $ / . test ( provider . oauth ) ) {
84- grant . state = provider . state
85- flow . authorize ( provider )
86- . then ( success )
87- . catch ( error )
79+ session . state = provider . state
80+ oauth2 . authorize ( provider )
81+ . then ( ( url ) => res . redirect ( url ) )
82+ . catch ( transport )
8883 }
8984
9085 else {
91- error ( { body : 'Grant: missing or misconfigured provider' } )
86+ transport ( { error : 'Grant: missing or misconfigured provider' } )
9287 }
9388 }
9489
9590 server . route ( {
9691 method : 'GET' ,
9792 path : '/connect/{provider}/callback' ,
9893 handler : ( req , res ) => {
99- var grant = ( req . session || req . yar ) . get ( 'grant' ) || { }
100- var provider = config . provider ( app . config , grant )
101- var flow = flows [ provider . oauth ]
94+ var session = ( req . session || req . yar ) . get ( 'grant' ) || { }
95+ var provider = config . provider ( app . config , session )
10296 var query = ( parseInt ( server . version . split ( '.' ) [ 0 ] ) >= 12 )
10397 ? qs . parse ( urlib . parse ( req . url , false ) . query ) // #2985
10498 : req . query
@@ -108,35 +102,33 @@ module.exports = function (_config) {
108102 res ( qs . stringify ( data ) )
109103 }
110104 else if ( ! provider . transport || provider . transport === 'querystring' ) {
111- res . redirect ( ( provider . callback || '' ) + '?' + qs . stringify ( data ) )
105+ res . redirect ( ` ${ provider . callback } ? ${ qs . stringify ( data ) } ` )
112106 }
113107 else if ( provider . transport === 'session' ) {
114- grant . response = data
115- ; ( req . session || req . yar ) . set ( 'grant' , grant )
116- res . redirect ( provider . callback || '' )
108+ session . response = data
109+ ; ( req . session || req . yar ) . set ( 'grant' , session )
110+ res . redirect ( provider . callback )
117111 }
118112 }
119- var success = ( data ) => transport ( data )
120- var error = ( err ) => transport ( { error : err . body } )
121113
122114 if ( / ^ 1 $ / . test ( provider . oauth ) ) {
123- flow . access ( provider , grant . request , query )
115+ oauth1 . access ( provider , session . request , query )
124116 . then ( ( { body} ) => {
125- success ( flows . response ( provider , body ) )
117+ transport ( response ( provider , body ) )
126118 } )
127- . catch ( error )
119+ . catch ( transport )
128120 }
129121
130122 else if ( / ^ 2 $ / . test ( provider . oauth ) ) {
131- flow . access ( provider , query , grant )
123+ oauth2 . access ( provider , query , session )
132124 . then ( ( { body} ) => {
133- success ( flows . response ( provider , body ) )
125+ transport ( response ( provider , body ) )
134126 } )
135- . catch ( error )
127+ . catch ( transport )
136128 }
137129
138130 else {
139- error ( { body : 'Grant: missing session or misconfigured provider' } )
131+ transport ( { error : 'Grant: missing session or misconfigured provider' } )
140132 }
141133 }
142134 } )
0 commit comments