@@ -47,6 +47,25 @@ const getLoginStrategy = () => {
4747 return enabledAppropriateLoginStrategies [ 0 ] . type . toLowerCase ( ) ;
4848} ;
4949
50+ const loginSuccessHandler = ( ) => async ( req , res ) => {
51+ try {
52+ const currentUser = { ...req . user } ;
53+ delete currentUser . password ;
54+ console . log (
55+ `serivce.routes.auth.login: user logged in, username=${
56+ currentUser . username
57+ } profile=${ JSON . stringify ( currentUser ) } `,
58+ ) ;
59+ res . send ( {
60+ message : 'success' ,
61+ user : toPublicUser ( currentUser ) ,
62+ } ) ;
63+ } catch ( e ) {
64+ console . log ( `service.routes.auth.login: Error logging user in ${ JSON . stringify ( e ) } ` ) ;
65+ res . status ( 500 ) . send ( 'Failed to login' ) . end ( ) ;
66+ }
67+ } ;
68+
5069// TODO: provide separate auth endpoints for each auth strategy or chain compatibile auth strategies
5170// TODO: if providing separate auth methods, inform the frontend so it has relevant UI elements and appropriate client-side behavior
5271router . post (
@@ -60,25 +79,7 @@ router.post(
6079 console . log ( 'going to auth with' , authType ) ;
6180 return passport . authenticate ( authType ) ( req , res , next ) ;
6281 } ,
63- async ( req , res ) => {
64- try {
65- const currentUser = { ...req . user } ;
66- delete currentUser . password ;
67- console . log (
68- `serivce.routes.auth.login: user logged in, username=${
69- currentUser . username
70- } profile=${ JSON . stringify ( currentUser ) } `,
71- ) ;
72- res . send ( {
73- message : 'success' ,
74- user : toPublicUser ( currentUser ) ,
75- } ) ;
76- } catch ( e ) {
77- console . log ( `service.routes.auth.login: Error logging user in ${ JSON . stringify ( e ) } ` ) ;
78- res . status ( 500 ) . send ( 'Failed to login' ) . end ( ) ;
79- return ;
80- }
81- } ,
82+ loginSuccessHandler ( ) ,
8283) ;
8384
8485router . get ( '/oidc' , passport . authenticate ( authStrategies [ 'openidconnect' ] . type ) ) ;
@@ -162,4 +163,8 @@ router.get('/me', async (req, res) => {
162163 res . status ( 401 ) . end ( ) ;
163164 }
164165} ) ;
165- module . exports = router ;
166+
167+ module . exports = {
168+ router,
169+ loginSuccessHandler
170+ } ;
0 commit comments