fix: don't pass CancellationToken to method that shouldn't abort
also add license header to project
This commit is contained in:
		
							parent
							
								
									d982342ab8
								
							
						
					
					
						commit
						5a22807410
					
				
					 3 changed files with 21 additions and 11 deletions
				
			
		|  | @ -28,18 +28,15 @@ public class DiscordAuthController( | ||||||
|     // TODO: duplicating attribute doesn't work, find another way to mark both as possible response |     // TODO: duplicating attribute doesn't work, find another way to mark both as possible response | ||||||
|     // leaving it here for documentation purposes |     // leaving it here for documentation purposes | ||||||
|     [ProducesResponseType<AuthController.CallbackResponse>(StatusCodes.Status200OK)] |     [ProducesResponseType<AuthController.CallbackResponse>(StatusCodes.Status200OK)] | ||||||
|     public async Task<IActionResult> CallbackAsync( |     public async Task<IActionResult> CallbackAsync([FromBody] AuthController.CallbackRequest req) | ||||||
|         [FromBody] AuthController.CallbackRequest req, |  | ||||||
|         CancellationToken ct = default |  | ||||||
|     ) |  | ||||||
|     { |     { | ||||||
|         CheckRequirements(); |         CheckRequirements(); | ||||||
|         await keyCacheService.ValidateAuthStateAsync(req.State, ct); |         await keyCacheService.ValidateAuthStateAsync(req.State); | ||||||
| 
 | 
 | ||||||
|         var remoteUser = await remoteAuthService.RequestDiscordTokenAsync(req.Code, req.State, ct); |         var remoteUser = await remoteAuthService.RequestDiscordTokenAsync(req.Code); | ||||||
|         var user = await authService.AuthenticateUserAsync(AuthType.Discord, remoteUser.Id, ct: ct); |         var user = await authService.AuthenticateUserAsync(AuthType.Discord, remoteUser.Id); | ||||||
|         if (user != null) |         if (user != null) | ||||||
|             return Ok(await GenerateUserTokenAsync(user, ct)); |             return Ok(await GenerateUserTokenAsync(user)); | ||||||
| 
 | 
 | ||||||
|         _logger.Debug( |         _logger.Debug( | ||||||
|             "Discord user {Username} ({Id}) authenticated with no local account", |             "Discord user {Username} ({Id}) authenticated with no local account", | ||||||
|  | @ -51,8 +48,7 @@ public class DiscordAuthController( | ||||||
|         await keyCacheService.SetKeyAsync( |         await keyCacheService.SetKeyAsync( | ||||||
|             $"discord:{ticket}", |             $"discord:{ticket}", | ||||||
|             remoteUser, |             remoteUser, | ||||||
|             Duration.FromMinutes(20), |             Duration.FromMinutes(20) | ||||||
|             ct |  | ||||||
|         ); |         ); | ||||||
| 
 | 
 | ||||||
|         return Ok( |         return Ok( | ||||||
|  |  | ||||||
|  | @ -13,7 +13,6 @@ public class RemoteAuthService(Config config, ILogger logger) | ||||||
| 
 | 
 | ||||||
|     public async Task<RemoteUser> RequestDiscordTokenAsync( |     public async Task<RemoteUser> RequestDiscordTokenAsync( | ||||||
|         string code, |         string code, | ||||||
|         string state, |  | ||||||
|         CancellationToken ct = default |         CancellationToken ct = default | ||||||
|     ) |     ) | ||||||
|     { |     { | ||||||
|  |  | ||||||
|  | @ -1,3 +1,18 @@ | ||||||
| <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> | <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> | ||||||
|  | 	<s:String x:Key="/Default/CodeStyle/FileHeader/FileHeaderText/@EntryValue">Copyright (C) 2023-present sam/u1f320 (vulpine.solutions) | ||||||
|  | 
 | ||||||
|  | This program is free software: you can redistribute it and/or modify | ||||||
|  | it under the terms of the GNU Affero General Public License as published | ||||||
|  | by the Free Software Foundation, either version 3 of the License, or | ||||||
|  | (at your option) any later version. | ||||||
|  | 
 | ||||||
|  | This program is distributed in the hope that it will be useful, | ||||||
|  | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | GNU Affero General Public License for more details. | ||||||
|  | 
 | ||||||
|  | You should have received a copy of the GNU Affero General Public License | ||||||
|  | along with this program.  If not, see <https://www.gnu.org/licenses/>.</s:String> | ||||||
|  | 	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EFeature_002EServices_002ECodeCleanup_002EFileHeader_002EFileHeaderSettingsMigrate/@EntryIndexedValue">True</s:Boolean> | ||||||
| 	<s:Boolean x:Key="/Default/UserDictionary/Words/=foxnouns/@EntryIndexedValue">True</s:Boolean> | 	<s:Boolean x:Key="/Default/UserDictionary/Words/=foxnouns/@EntryIndexedValue">True</s:Boolean> | ||||||
| 	<s:Boolean x:Key="/Default/UserDictionary/Words/=pronounscc/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> | 	<s:Boolean x:Key="/Default/UserDictionary/Words/=pronounscc/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue