@@ -784,27 +784,36 @@ router.get("/google/callback", passport.authenticate("google", { session: false
784784
785785router . get ( "/oauth2" , function ( req , res , next ) {
786786 winston . debug ( "(oauth2) redirect_url: " + req . query . redirect_url ) ;
787- req . session . redirect_url = req . query . redirect_url ;
787+ // req.session.redirect_url = req.query.redirect_url;
788788
789789 winston . debug ( "(oauth2) forced_redirect_url: " + req . query . forced_redirect_url ) ;
790- req . session . forced_redirect_url = req . query . forced_redirect_url ;
790+ // req.session.forced_redirect_url = req.query.forced_redirect_url;
791+
792+ req . session . save ( ( ) => {
793+ passport . authenticate ( 'oauth2' , {
794+ state : JSON . stringify ( {
795+ redirect_url : req . query . redirect_url ,
796+ forced_redirect_url : req . query . forced_redirect_url
797+ } )
798+ } ) ( req , res , next ) ;
799+ } ) ;
791800
792- passport . authenticate (
793- 'oauth2' , { prompt : 'select_account' }
794- ) ( req , res , next ) ;
801+ // passport.authenticate(
802+ // 'oauth2'
803+ // )(req, res, next);
795804} ) ;
796805
797806// router.get('/oauth2',
798807// passport.authenticate('oauth2'));
799808
800809router . get ( '/oauth2/callback' , passport . authenticate ( 'oauth2' , { session : false } ) , function ( req , res ) {
801- winston . debug ( "'/oauth2/callback: " , req . query ) ;
802- winston . debug ( "/oauth2/callback --> req.session.redirect_url" , req . session . redirect_url ) ;
803- winston . debug ( "/oauth2/callback --> req.session.forced_redirect_url" , req . session . forced_redirect_url ) ;
810+ winston . debug ( "'(/oauth2/callback): " , req . query ) ;
811+ const state = JSON . parse ( req . query . state ) ;
812+ winston . debug ( "(/oauth2/callback) redirect_url:" + state . redirect_url ) ;
813+ winston . debug ( "(/oauth2/callback) forced_redirect_url:" + state . forced_redirect_url ) ;
804814
805815 var user = req . user ;
806816 winston . debug ( "(/oauth2/callback) user" , user ) ;
807- winston . debug ( "(/oauth2/callback) req.session.redirect_url: " + req . session . redirect_url ) ;
808817 var userJson = user . toObject ( ) ;
809818
810819 delete userJson . password ;
@@ -828,21 +837,20 @@ router.get('/oauth2/callback', passport.authenticate('oauth2', { session: false
828837 // res.json(returnObject);
829838
830839 let dashboard_base_url = process . env . EMAIL_BASEURL || config . baseUrl ;
831- winston . debug ( "(/oauth2/callback) Google Redirect dashboard_base_url: " , dashboard_base_url ) ;
840+ winston . debug ( "(/oauth2/callback) Google Redirect dashboard_base_url: " + dashboard_base_url ) ;
832841
833842 let homeurl = "/#/" ;
834-
835843 const separator = homeurl . includes ( '?' ) ? '&' : '?' ;
836844 var url = dashboard_base_url + homeurl + separator + "token=JWT " + token ;
837-
838- if ( req . session . redirect_url ) {
839- const separator = req . session . redirect_url . includes ( '?' ) ? '&' : '?' ;
840- url = req . session . redirect_url + separator + "token=JWT " + token ;
845+
846+ if ( state ? .redirect_url ) {
847+ const separator = state . redirect_url . includes ( '?' ) ? '&' : '?' ;
848+ url = state . redirect_url + separator + "token=JWT " + token ;
841849 }
842850
843- if ( req . session . forced_redirect_url ) {
844- const separator = req . session . forced_redirect_url . includes ( '?' ) ? '&' : '?' ;
845- url = req . session . forced_redirect_url + separator + "jwt=JWT " + token ; //attention we use jwt= (ionic) instead token=(dashboard) for ionic
851+ if ( state ? .forced_redirect_url ) {
852+ const separator = state . forced_redirect_url . includes ( '?' ) ? '&' : '?' ;
853+ url = state . forced_redirect_url + separator + "jwt=JWT " + token ; //attention we use jwt= (ionic) instead token=(dashboard) for ionic
846854 }
847855
848856 winston . debug ( "(/oauth2/callback) Google Redirect: " + url ) ;
0 commit comments