Skip to content

feat: implement session management#9286

Merged
alist666 merged 4 commits intoAlistGo:mainfrom
okatu-loli:session-manage
Aug 25, 2025
Merged

feat: implement session management#9286
alist666 merged 4 commits intoAlistGo:mainfrom
okatu-loli:session-manage

Conversation

@okatu-loli
Copy link
Copy Markdown
Collaborator

fix: #9285

- Added the `handleSession` function to manage user device sessions and verify client identity
- Updated `auth.go` to call `handleSession` for device handling when a user logs in
- Added the `Session` model to database migrations
- Added `device.go` and `session.go` files to handle device session logic
- Updated `settings.go` to add device-related configuration items, such as the maximum number of devices, device eviction policy, and session TTL
- Added `SessionInactive` error type in `device.go`
- Added session-related APIs in `router.go` to support listing and evicting sessions
- Added `ListSessionsByUser`, `ListSessions`, and `MarkInactive` methods in `session.go`
- Returns an appropriate error when the session state is `SessionInactive`
- Import the `session` package into the `auth` module to handle device session status.
- Add a check in the login logic. If `device_key` is obtained, call `session.MarkInactive` to mark the device session as invalid.
- Store the invalid status in the context variable `session_inactive` for subsequent middleware checks.
- Add a check in the session refresh logic to abort the process if the current session has been marked invalid.
…management changes

- Updated device handling logic in `auth.go` to pass user agent and IP information
- Adjusted database queries in `session.go` to optimize session query fields and add `user_agent` and `ip` fields
- Modified the `Handle` method to add `ua` and `ip` parameters to store the user agent and IP address
- Added the `SessionResp` structure to return a session response containing `user_agent` and `ip`
- Updated the `/admin/user/create` and `/webdav` endpoints to pass the user agent and IP address to the device handler
@alist666 alist666 merged commit c64f899 into AlistGo:main Aug 25, 2025
12 checks passed
@liufurusu
Copy link
Copy Markdown

请问?更新到测试版了吗 ,我用测试版本没看到有设置webdav的地方

@okatu-loli
Copy link
Copy Markdown
Collaborator Author

okatu-loli commented Aug 26, 2025 via email

@liufurusu
Copy link
Copy Markdown

好 还有多久发布啊?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

可以添加用户的控制webdav登录设备数量吗。

4 participants