alist/server
千石 4b288a08ef
fix: session invalid issue (#9301)
* feat(auth): Enhanced device login session management

- Upon login, obtain and verify `Client-Id` to ensure unique device sessions.
- If there are too many device sessions, clean up old ones according to the configured policy or return an error.
- If a device session is invalid, deregister the old token and return a 401 error.
- Added `EnsureActiveOnLogin` function to handle the creation and refresh of device sessions during login.

* feat(session): Modified session deletion logic to mark sessions as inactive.

- Changed session deletion logic to mark sessions as inactive using the `MarkInactive` method.
- Adjusted error handling to ensure an error is returned if marking fails.

* feat(session): Added device limits and eviction policies

- Added a device limit, controlling the maximum number of devices using the `MaxDevices` configuration option.
- If the number of devices exceeds the limit, the configured eviction policy is used.
- If the policy is `evict_oldest`, the oldest device is evicted.
- Otherwise, an error message indicating too many devices is returned.

* refactor(session): Filter for the user's oldest active session

- Renamed `GetOldestSession` to `GetOldestActiveSession` to more accurately reflect its functionality
- Updated the SQL query to add the `status = SessionActive` condition to retrieve only active sessions
- Replaced all callpoints and unified the new function name to ensure logical consistency
2025-08-29 21:20:29 +08:00
..
common fix: webdav error location (#9266) 2025-08-15 23:10:55 +08:00
ftp feat: enhance permission control and label management (#9215) 2025-07-26 09:51:59 +08:00
handles fix: session invalid issue (#9301) 2025-08-29 21:20:29 +08:00
middlewares fix: session invalid issue (#9301) 2025-08-29 21:20:29 +08:00
s3 refactor(net): pass request header (#8031 close #8008) 2025-03-01 18:35:34 +08:00
sftp feat(sftp-server): do not generate host key until first enabled (#7734) 2024-12-30 22:54:37 +08:00
static fix: static page to limit request method (#7745 close #7667) 2024-12-30 22:49:18 +08:00
webdav fix: resolve webdav decode issue (#9268) 2025-08-16 20:55:17 +08:00
debug.go fix(archive): use another sign for extraction (#7982) 2025-03-01 18:34:33 +08:00
ftp.go feat: enhance permission control and label management (#9215) 2025-07-26 09:51:59 +08:00
router.go feat: implement session management (#9286) 2025-08-25 19:46:38 +08:00
s3.go fix(s3): don't bind s3 port if s3 is not enabled (#6291) 2024-04-03 10:09:48 +08:00
sftp.go feat: enhance permission control and label management (#9215) 2025-07-26 09:51:59 +08:00
webdav.go feat: implement session management (#9286) 2025-08-25 19:46:38 +08:00