pub struct AuthResponse {
pub user_id: u64,
pub token: String,
pub refresh_token: Option<String>,
pub expires_at: String,
pub device_id: String,
}Expand description
认证响应(登录和注册统一返回结构)
RPC路由: account/auth/login, account/user/register
注册成功或登录成功后都返回此结构,包含绑定设备的 JWT token 客户端可以直接使用 token 进行 AuthorizationRequest
JWT Token 安全说明:
- token 包含 user_id 和 device_id
- 验证时会检查请求的 device_id 是否匹配 token 中的 device_id
- 切换设备必须重新登录获取新 token
- 防止 token 被复制到其他设备使用
Fields§
§user_id: u64用户ID
token: StringJWT Token(用于 AuthorizationRequest,绑定设备)
Token payload 包含:
- user_id: 用户ID
- device_id: 设备ID(用于验证)
- exp: 过期时间
- iat: 签发时间
refresh_token: Option<String>Refresh Token(用于刷新 token,同样绑定设备)
expires_at: StringToken 过期时间(RFC3339 格式)
device_id: String绑定的设备ID(返回给客户端确认)
客户端应保存此 device_id,后续所有请求都需要携带
Trait Implementations§
Source§impl Clone for AuthResponse
impl Clone for AuthResponse
Source§fn clone(&self) -> AuthResponse
fn clone(&self) -> AuthResponse
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AuthResponse
impl Debug for AuthResponse
Source§impl<'de> Deserialize<'de> for AuthResponse
impl<'de> Deserialize<'de> for AuthResponse
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for AuthResponse
impl RefUnwindSafe for AuthResponse
impl Send for AuthResponse
impl Sync for AuthResponse
impl Unpin for AuthResponse
impl UnsafeUnpin for AuthResponse
impl UnwindSafe for AuthResponse
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more