create account if none exists
This commit is contained in:
		
							parent
							
								
									84612050c7
								
							
						
					
					
						commit
						23d65ec4da
					
				
							
								
								
									
										23
									
								
								oauth3.js
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								oauth3.js
									
									
									
									
									
								
							| @ -108,6 +108,8 @@ | ||||
| 
 | ||||
|       console.info('[oauth3.hooks.refreshSession] oldSession', JSON.parse(JSON.stringify(oldSession))); | ||||
|       console.info('[oauth3.hooks.refreshSession] newSession', newSession); | ||||
|       // shim for account create which does not return new refresh_token
 | ||||
|       newSession.refresh_token = newSession.refresh_token || oldSession.refresh_token; | ||||
|       Object.keys(oldSession).forEach(function (key) { | ||||
|         oldSession[key] = undefined; | ||||
|       }); | ||||
| @ -122,13 +124,24 @@ | ||||
|       // info about the newly-discovered token
 | ||||
|       oldSession.token = oldSession.meta = core.jwt.decode(oldSession.access_token).payload; | ||||
| 
 | ||||
|       oldSession.token.sub = oldSession.token.sub || oldSession.token.acx.id; | ||||
|       oldSession.token.sub = oldSession.token.sub | ||||
|         || (oldSession.token.acx && oldSession.token.acx.id) | ||||
|         || (oldSession.token.axs && oldSession.token.axs.length && oldSession.token.axs[0].appScopedId) | ||||
|         ; | ||||
|       oldSession.token.client_uri = clientUri; | ||||
|       oldSession.token.provider_uri = providerUri; | ||||
| 
 | ||||
|       if (oldSession.refresh_token || oldSession.refreshToken) { | ||||
|         oldSession.refresh = core.jwt.decode(oldSession.refresh_token || oldSession.refreshToken).payload; | ||||
|         oldSession.refresh.sub = oldSession.refresh.sub || oldSession.refresh.acx.id; | ||||
|       if (!oldSession.token.sub) { | ||||
|         // TODO this is broken hard
 | ||||
|         console.warn('TODO implementation for OAUTH3.hooks.accounts.create (GUI, CLI, or API)'); | ||||
|       } | ||||
| 
 | ||||
|       if (oldSession.refresh_token) { | ||||
|         oldSession.refresh = core.jwt.decode(oldSession.refresh_token).payload; | ||||
|         oldSession.refresh.sub = oldSession.refresh.sub | ||||
|           || (oldSession.refresh.acx && oldSession.refresh.acx.id) | ||||
|           || (oldSession.refresh.axs && oldSession.refresh.axs.length && oldSession.refresh.axs[0].appScopedId) | ||||
|           ; | ||||
|         oldSession.refresh.provider_uri = providerUri; | ||||
|       } | ||||
| 
 | ||||
| @ -205,7 +218,7 @@ | ||||
|           // TODO check session.token.aud against preq.url to make sure they match
 | ||||
|           console.warn("[security] session audience checking has not been implemented yet (it's up to you to check)"); | ||||
|           preq.headers = preq.headers || {}; | ||||
|           preq.headers.Authorization = 'Bearer ' + (preq.session.access_token || preq.session.accessToken); | ||||
|           preq.headers.Authorization = 'Bearer ' + preq.session.access_token; | ||||
|         } | ||||
| 
 | ||||
|         if (!oauth3._lintRequest) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user