mirror of
https://github.com/janishutz/oidc-login-sdk.git
synced 2026-10-08 17:36:20 +02:00
feat: login return url, optional user validation function
This commit is contained in:
1 parent
ea67e6984a
commit
b50eb2bc74
1 file changed
+13
-2
+13
-2
@@ -10,6 +10,7 @@ import express from 'express';
|
|||||||
* @param authForAllRoutes - Whether or not to require authorization on all routes
|
* @param authForAllRoutes - Whether or not to require authorization on all routes
|
||||||
* @param scopes - Scopes to request
|
* @param scopes - Scopes to request
|
||||||
* @param enableBackchannelLogout - Whether or not to enable backchannel logout. If true, must provide sessionStore
|
* @param enableBackchannelLogout - Whether or not to enable backchannel logout. If true, must provide sessionStore
|
||||||
|
* @param loginReturnURL - The URL to return to by default if none is specified as returnTo query parameter
|
||||||
* @param userValidation - Function to validate the user
|
* @param userValidation - Function to validate the user
|
||||||
* @param sessionStore - RECOMMENDED: Use any express-session SessionStore, like the RedisStore
|
* @param sessionStore - RECOMMENDED: Use any express-session SessionStore, like the RedisStore
|
||||||
* @param extraOpts - Extra configuration options, or overwrite some set here
|
* @param extraOpts - Extra configuration options, or overwrite some set here
|
||||||
@@ -21,7 +22,8 @@ export const configure = (
|
|||||||
authForAllRoutes: boolean,
|
authForAllRoutes: boolean,
|
||||||
scopes: ( 'profile' | 'email' )[],
|
scopes: ( 'profile' | 'email' )[],
|
||||||
enableBackchannelLogout: boolean,
|
enableBackchannelLogout: boolean,
|
||||||
userValidation: ( req: express.Request, res: express.Response, session: connect.Session ) => Promise<connect.Session>,
|
loginReturnURL?: URL,
|
||||||
|
userValidation?: ( req: express.Request, res: express.Response, session: connect.Session ) => Promise<connect.Session>,
|
||||||
sessionStore?: connect.SessionStore,
|
sessionStore?: connect.SessionStore,
|
||||||
extraOpts?: connect.ConfigParams
|
extraOpts?: connect.ConfigParams
|
||||||
) => {
|
) => {
|
||||||
@@ -44,7 +46,7 @@ export const configure = (
|
|||||||
'enableTelemetry': false,
|
'enableTelemetry': false,
|
||||||
'routes': {
|
'routes': {
|
||||||
'callback': '/auth/v2/verify',
|
'callback': '/auth/v2/verify',
|
||||||
'login': '/auth/v2/login',
|
'login': false,
|
||||||
'logout': '/auth/v2/logout',
|
'logout': '/auth/v2/logout',
|
||||||
'postLogoutRedirect': '/',
|
'postLogoutRedirect': '/',
|
||||||
'backchannelLogout': '/auth/v2/logout'
|
'backchannelLogout': '/auth/v2/logout'
|
||||||
@@ -53,6 +55,15 @@ export const configure = (
|
|||||||
} ) );
|
} ) );
|
||||||
|
|
||||||
app.get( '/auth/v2/check', connect.requiresAuth(), ( _req, res ) => res.sendStatus( 200 ) );
|
app.get( '/auth/v2/check', connect.requiresAuth(), ( _req, res ) => res.sendStatus( 200 ) );
|
||||||
|
|
||||||
|
app.get( '/auth/v2/login', ( req, res ) => {
|
||||||
|
res.oidc.login( {
|
||||||
|
'returnTo': req.query.returnTo ? String( req.query.returnTo ) : ( loginReturnURL.href ?? '/' ),
|
||||||
|
'authorizationParams': {
|
||||||
|
'redirect_uri': appURL.href + 'auth/v2/verify'
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
} );
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Re-Export of express-openid-connect's requiresAuth function */
|
/** Re-Export of express-openid-connect's requiresAuth function */
|
||||||
|
|||||||
Reference in new issue
Block a user