mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-03 20:02:27 -06:00 
			
		
		
		
	
		
			
	
	
		
			40 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package manage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import "time"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Config authorization configuration parameters
							 | 
						||
| 
								 | 
							
								type Config struct {
							 | 
						||
| 
								 | 
							
									// access token expiration time, 0 means it doesn't expire
							 | 
						||
| 
								 | 
							
									AccessTokenExp time.Duration
							 | 
						||
| 
								 | 
							
									// refresh token expiration time, 0 means it doesn't expire
							 | 
						||
| 
								 | 
							
									RefreshTokenExp time.Duration
							 | 
						||
| 
								 | 
							
									// whether to generate the refreshing token
							 | 
						||
| 
								 | 
							
									IsGenerateRefresh bool
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// RefreshingConfig refreshing token config
							 | 
						||
| 
								 | 
							
								type RefreshingConfig struct {
							 | 
						||
| 
								 | 
							
									// access token expiration time, 0 means it doesn't expire
							 | 
						||
| 
								 | 
							
									AccessTokenExp time.Duration
							 | 
						||
| 
								 | 
							
									// refresh token expiration time, 0 means it doesn't expire
							 | 
						||
| 
								 | 
							
									RefreshTokenExp time.Duration
							 | 
						||
| 
								 | 
							
									// whether to generate the refreshing token
							 | 
						||
| 
								 | 
							
									IsGenerateRefresh bool
							 | 
						||
| 
								 | 
							
									// whether to reset the refreshing create time
							 | 
						||
| 
								 | 
							
									IsResetRefreshTime bool
							 | 
						||
| 
								 | 
							
									// whether to remove access token
							 | 
						||
| 
								 | 
							
									IsRemoveAccess bool
							 | 
						||
| 
								 | 
							
									// whether to remove refreshing token
							 | 
						||
| 
								 | 
							
									IsRemoveRefreshing bool
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// default configs
							 | 
						||
| 
								 | 
							
								var (
							 | 
						||
| 
								 | 
							
									DefaultCodeExp               = time.Minute * 10
							 | 
						||
| 
								 | 
							
									DefaultAuthorizeCodeTokenCfg = &Config{AccessTokenExp: time.Hour * 2, RefreshTokenExp: time.Hour * 24 * 3, IsGenerateRefresh: true}
							 | 
						||
| 
								 | 
							
									DefaultImplicitTokenCfg      = &Config{AccessTokenExp: time.Hour * 1}
							 | 
						||
| 
								 | 
							
									DefaultPasswordTokenCfg      = &Config{AccessTokenExp: time.Hour * 2, RefreshTokenExp: time.Hour * 24 * 7, IsGenerateRefresh: true}
							 | 
						||
| 
								 | 
							
									DefaultClientTokenCfg        = &Config{AccessTokenExp: time.Hour * 2}
							 | 
						||
| 
								 | 
							
									DefaultRefreshTokenCfg       = &RefreshingConfig{IsGenerateRefresh: true, IsRemoveAccess: true, IsRemoveRefreshing: true}
							 | 
						||
| 
								 | 
							
								)
							 |