forked from coolaj86/walnut.js
		
	delete expired token cookies
This commit is contained in:
		
							parent
							
								
									f2ad6f127c
								
							
						
					
					
						commit
						66850535d3
					
				| @ -22,6 +22,10 @@ function generateRescope(req, Models, decoded, fullPpid, ppid) { | ||||
|       if (!result || !result.sub || !decoded.iss) { | ||||
|         // XXX BUG XXX TODO swap this external ppid for an internal (and ask user to link with existing profile)
 | ||||
|         //req.oauth3.accountIdx = fullPpid;
 | ||||
|         console.log(decoded); | ||||
|         console.log(decoded.iss); | ||||
|         console.log(fullPpid); | ||||
|         console.log(ppid); | ||||
|         throw new Error("internal / external ID swapping not yet implemented. TODO: " | ||||
|           + "No profile found with that credential. Would you like to create a new profile or link to an existing profile?"); | ||||
|       } | ||||
| @ -198,6 +202,14 @@ function verifyToken(token) { | ||||
|     try { | ||||
|       return jwt.verify(token, require('jwk-to-pem')(res.data), opts); | ||||
|     } catch (err) { | ||||
|       if ('TokenExpiredError' === err.code) { | ||||
|         return PromiseA.reject({ | ||||
|           message: 'TokenExpiredError: jwt expired' | ||||
|         , code: 'E_TOKEN_EXPIRED' | ||||
|         , url: 'https://oauth3.org/docs/errors#E_TOKEN_EXPIRED' | ||||
|         }); | ||||
|       } | ||||
| 
 | ||||
|       return PromiseA.reject({ | ||||
|         message: 'token verification failed' | ||||
|       , code: 'E_INVALID_TOKEN' | ||||
| @ -220,7 +232,8 @@ function deepFreeze(obj) { | ||||
| function cookieOauth3(Models, req, res, next) { | ||||
|   req.oauth3 = {}; | ||||
| 
 | ||||
|   var token = req.cookies.jwt; | ||||
|   var cookieName = 'jwt'; | ||||
|   var token = req.cookies[cookieName]; | ||||
| 
 | ||||
|   req.oauth3.encodedToken = token; | ||||
|   req.oauth3.verifyAsync = function (jwt) { | ||||
| @ -251,6 +264,11 @@ function cookieOauth3(Models, req, res, next) { | ||||
|       next(); | ||||
|       return; | ||||
|     } | ||||
|     if ('E_TOKEN_EXPIRED' === err.code) { | ||||
|       res.clearCookie(cookieName); | ||||
|       next(); | ||||
|       return; | ||||
|     } | ||||
|     console.error('[walnut] cookie lib/oauth3 error:'); | ||||
|     console.error(err); | ||||
|     res.send(err); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user