| 
									
										
										
										
											2015-02-06 04:39:52 +01:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2024-11-25 04:18:55 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-21 08:40:00 +02:00
										 |  |  | /** | 
					
						
							|  |  |  |  * auth.php | 
					
						
							| 
									
										
										
										
											2020-03-17 16:06:30 +00:00
										 |  |  |  * Copyright (c) 2019 james@firefly-iii.org. | 
					
						
							| 
									
										
										
										
											2017-10-21 08:40:00 +02:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2019-10-02 06:38:00 +02:00
										 |  |  |  * This file is part of Firefly III (https://github.com/firefly-iii). | 
					
						
							| 
									
										
										
										
											2017-10-21 08:40:00 +02:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2019-10-02 06:38:00 +02:00
										 |  |  |  * 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. | 
					
						
							| 
									
										
										
										
											2017-10-21 08:40:00 +02:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2019-10-02 06:38:00 +02:00
										 |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							| 
									
										
										
										
											2017-10-21 08:40:00 +02:00
										 |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							| 
									
										
										
										
											2019-10-02 06:38:00 +02:00
										 |  |  |  * GNU Affero General Public License for more details. | 
					
						
							| 
									
										
										
										
											2017-10-21 08:40:00 +02:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2019-10-02 06:38:00 +02:00
										 |  |  |  * 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/>. | 
					
						
							| 
									
										
										
										
											2017-10-21 08:40:00 +02:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-14 17:40:02 +02:00
										 |  |  | declare(strict_types=1); | 
					
						
							| 
									
										
										
										
											2024-03-10 06:17:31 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-17 20:23:02 +01:00
										 |  |  | use FireflyIII\User; | 
					
						
							| 
									
										
										
										
											2017-09-14 17:40:02 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-09 22:32:11 +02:00
										 |  |  | return [ | 
					
						
							|  |  |  |     /* | 
					
						
							|  |  |  |     |-------------------------------------------------------------------------- | 
					
						
							|  |  |  |     | Authentication Defaults | 
					
						
							|  |  |  |     |-------------------------------------------------------------------------- | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     | This option controls the default authentication "guard" and password | 
					
						
							|  |  |  |     | reset options for your application. You may change these defaults | 
					
						
							|  |  |  |     | as required, but they're a perfect start for most applications. | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     */ | 
					
						
							| 
									
										
										
										
											2017-08-18 21:08:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-01 14:45:51 +01:00
										 |  |  |     'defaults'         => [ | 
					
						
							| 
									
										
										
										
											2020-06-11 06:55:13 +02:00
										 |  |  |         'guard'     => envNonEmpty('AUTHENTICATION_GUARD', 'web'), | 
					
						
							| 
									
										
										
										
											2016-01-08 15:59:21 +01:00
										 |  |  |         'passwords' => 'users', | 
					
						
							|  |  |  |     ], | 
					
						
							| 
									
										
										
										
											2024-01-01 14:45:51 +01:00
										 |  |  |     'guard_header'     => envNonEmpty('AUTHENTICATION_GUARD_HEADER', 'REMOTE_USER'), | 
					
						
							|  |  |  |     'guard_email'      => envNonEmpty('AUTHENTICATION_GUARD_EMAIL', null), | 
					
						
							| 
									
										
										
										
											2017-09-09 22:32:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /* | 
					
						
							|  |  |  |     |-------------------------------------------------------------------------- | 
					
						
							|  |  |  |     | Authentication Guards | 
					
						
							|  |  |  |     |-------------------------------------------------------------------------- | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     | Next, you may define every authentication guard for your application. | 
					
						
							|  |  |  |     | Of course, a great default configuration has been defined for you | 
					
						
							|  |  |  |     | here which uses session storage and the Eloquent user provider. | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     | All authentication drivers have a user provider. This defines how the | 
					
						
							|  |  |  |     | users are actually retrieved out of your database or other storage | 
					
						
							|  |  |  |     | mechanisms used by this application to persist your user's data. | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     | Supported: "session", "token" | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-01 14:45:51 +01:00
										 |  |  |     'guards'           => [ | 
					
						
							| 
									
										
										
										
											2020-06-11 06:55:13 +02:00
										 |  |  |         'web'               => [ | 
					
						
							| 
									
										
										
										
											2017-11-15 11:33:07 +01:00
										 |  |  |             'driver'   => 'session', | 
					
						
							| 
									
										
										
										
											2016-01-08 15:59:21 +01:00
										 |  |  |             'provider' => 'users', | 
					
						
							|  |  |  |         ], | 
					
						
							| 
									
										
										
										
											2020-06-11 06:55:13 +02:00
										 |  |  |         'remote_user_guard' => [ | 
					
						
							|  |  |  |             'driver'   => 'remote_user_guard', | 
					
						
							|  |  |  |             'provider' => 'remote_user_provider', | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |         'api'               => [ | 
					
						
							| 
									
										
										
										
											2018-02-04 08:14:03 +01:00
										 |  |  |             'driver'   => 'passport', | 
					
						
							| 
									
										
										
										
											2016-01-08 15:59:21 +01:00
										 |  |  |             'provider' => 'users', | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |     ], | 
					
						
							| 
									
										
										
										
											2017-09-09 22:32:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /* | 
					
						
							|  |  |  |     |-------------------------------------------------------------------------- | 
					
						
							|  |  |  |     | User Providers | 
					
						
							|  |  |  |     |-------------------------------------------------------------------------- | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     | All authentication drivers have a user provider. This defines how the | 
					
						
							|  |  |  |     | users are actually retrieved out of your database or other storage | 
					
						
							|  |  |  |     | mechanisms used by this application to persist your user's data. | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     | If you have multiple user tables or models you may configure multiple | 
					
						
							|  |  |  |     | sources which represent each model / table. These sources may then | 
					
						
							|  |  |  |     | be assigned to any extra authentication guards you have defined. | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     | Supported: "database", "eloquent" | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-01 14:45:51 +01:00
										 |  |  |     'providers'        => [ | 
					
						
							| 
									
										
										
										
											2020-06-11 06:55:13 +02:00
										 |  |  |         'users'                => [ | 
					
						
							| 
									
										
										
										
											2022-03-29 15:01:12 +02:00
										 |  |  |             'driver' => 'eloquent', | 
					
						
							| 
									
										
										
										
											2024-01-17 20:23:02 +01:00
										 |  |  |             'model'  => User::class, | 
					
						
							| 
									
										
										
										
											2016-01-08 15:59:21 +01:00
										 |  |  |         ], | 
					
						
							| 
									
										
										
										
											2020-06-11 06:55:13 +02:00
										 |  |  |         'remote_user_provider' => [ | 
					
						
							|  |  |  |             'driver' => 'remote_user_provider', | 
					
						
							| 
									
										
										
										
											2024-01-17 20:23:02 +01:00
										 |  |  |             'model'  => User::class, | 
					
						
							| 
									
										
										
										
											2020-06-11 06:55:13 +02:00
										 |  |  |         ], | 
					
						
							| 
									
										
										
										
											2016-01-08 15:59:21 +01:00
										 |  |  |     ], | 
					
						
							| 
									
										
										
										
											2017-09-09 22:32:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /* | 
					
						
							|  |  |  |     |-------------------------------------------------------------------------- | 
					
						
							|  |  |  |     | Resetting Passwords | 
					
						
							|  |  |  |     |-------------------------------------------------------------------------- | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     | You may specify multiple password reset configurations if you have more | 
					
						
							|  |  |  |     | than one user table or model in the application and you want to have | 
					
						
							|  |  |  |     | separate password reset settings based on the specific user types. | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     | The expire time is the number of minutes that the reset token should be | 
					
						
							|  |  |  |     | considered valid. This security feature keeps tokens short-lived so | 
					
						
							|  |  |  |     | they have less time to be guessed. You may change this as needed. | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-01 14:45:51 +01:00
										 |  |  |     'passwords'        => [ | 
					
						
							| 
									
										
										
										
											2016-01-08 15:59:21 +01:00
										 |  |  |         'users' => [ | 
					
						
							|  |  |  |             'provider' => 'users', | 
					
						
							| 
									
										
										
										
											2017-11-15 11:33:07 +01:00
										 |  |  |             'table'    => 'password_resets', | 
					
						
							|  |  |  |             'expire'   => 60, | 
					
						
							| 
									
										
										
										
											2021-10-03 18:18:44 +02:00
										 |  |  |             'throttle' => 300, // Allows a user to request 1 token per 300 seconds
 | 
					
						
							| 
									
										
										
										
											2016-01-08 15:59:21 +01:00
										 |  |  |         ], | 
					
						
							| 
									
										
										
										
											2015-06-27 08:06:24 +02:00
										 |  |  |     ], | 
					
						
							| 
									
										
										
										
											2020-06-06 22:25:52 +02:00
										 |  |  |     /* | 
					
						
							|  |  |  |     |-------------------------------------------------------------------------- | 
					
						
							|  |  |  |     | Password Confirmation Timeout | 
					
						
							|  |  |  |     |-------------------------------------------------------------------------- | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     | Here you may define the amount of seconds before a password confirmation | 
					
						
							|  |  |  |     | times out and the user is prompted to re-enter their password via the | 
					
						
							|  |  |  |     | confirmation screen. By default, the timeout lasts for three hours. | 
					
						
							|  |  |  |     | | 
					
						
							|  |  |  |     */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     'password_timeout' => 10800, | 
					
						
							| 
									
										
										
										
											2015-02-06 04:39:52 +01:00
										 |  |  | ]; |