Allow setting redirect_to cookie on OAuth login (#22594)
				
					
				
			The regular login flow can use a `redirect_to` cookie to ensure the user
ends their authentication flow on the same page as where they started
it.
This commit adds the same functionality to the OAuth login URLs, so that
you can use URLs like these to directly use a specific OAuth provider:
`/user/oauth2/{provider}?redirect_to={post-login path}`
Only the `auth.SignInOAuth()` function needed a change for this, as the
rest of the login flow is aware of this cookie and uses it properly
already.
			
			
This commit is contained in:
		
							parent
							
								
									9cc15d18df
								
							
						
					
					
						commit
						95e8ea9440
					
				
					 1 changed files with 5 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -847,6 +847,11 @@ func SignInOAuth(ctx *context.Context) {
 | 
			
		|||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	redirectTo := ctx.FormString("redirect_to")
 | 
			
		||||
	if len(redirectTo) > 0 {
 | 
			
		||||
		middleware.SetRedirectToCookie(ctx.Resp, redirectTo)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// try to do a direct callback flow, so we don't authenticate the user again but use the valid accesstoken to get the user
 | 
			
		||||
	user, gothUser, err := oAuth2UserLoginCallback(authSource, ctx.Req, ctx.Resp)
 | 
			
		||||
	if err == nil && user != nil {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue