pub struct TokenClaims {
pub jti: Option<String>,
pub sub: String,
pub username: Option<String>,
pub roles: Vec<String>,
pub permissions: Vec<String>,
pub token_type: Option<TokenType>,
pub exp: usize,
pub iat: usize,
}Expand description
JWT Token 声明(与 jsonwebtoken 配合使用)
由 AuthLayer 中间件验证后注入到 request.extensions,
业务代码可通过 Extension<AuthClaims> 提取。
Fields§
§jti: Option<String>JWT 唯一标识(jti),用于 Token 黑名单/撤销机制
sub: String用户 ID(subject)
username: Option<String>用户名
roles: Vec<String>角色列表(如 [“admin”, “user”])
permissions: Vec<String>权限列表(如 [“user:read”, “user:write”])
token_type: Option<TokenType>Token 类型
exp: usize过期时间(Unix 时间戳,秒)
iat: usize签发时间(Unix 时间戳,秒)
Implementations§
Source§impl TokenClaims
impl TokenClaims
Sourcepub fn has_any_role(&self, roles: &[&str]) -> bool
pub fn has_any_role(&self, roles: &[&str]) -> bool
是否拥有任一角色
Sourcepub fn has_all_roles(&self, roles: &[&str]) -> bool
pub fn has_all_roles(&self, roles: &[&str]) -> bool
是否拥有所有角色
Sourcepub fn has_permission(&self, permission: &str) -> bool
pub fn has_permission(&self, permission: &str) -> bool
是否拥有指定权限
若 claims 中包含 * 或 *:*:* 通配权限,则匹配任意权限。
Sourcepub fn has_any_permission(&self, permissions: &[&str]) -> bool
pub fn has_any_permission(&self, permissions: &[&str]) -> bool
是否拥有任一权限
Sourcepub fn is_super_admin(&self) -> bool
pub fn is_super_admin(&self) -> bool
是否为超级管理员(拥有 * 或 *:*:* 通配权限)
Trait Implementations§
Source§impl Clone for TokenClaims
impl Clone for TokenClaims
Source§fn clone(&self) -> TokenClaims
fn clone(&self) -> TokenClaims
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 TokenClaims
impl Debug for TokenClaims
Source§impl<'de> Deserialize<'de> for TokenClaims
impl<'de> Deserialize<'de> for TokenClaims
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 TokenClaims
impl RefUnwindSafe for TokenClaims
impl Send for TokenClaims
impl Sync for TokenClaims
impl Unpin for TokenClaims
impl UnsafeUnpin for TokenClaims
impl UnwindSafe for TokenClaims
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