Trait chimes_auth::ChimesAuthService
source · [−]pub trait ChimesAuthService<T> where
T: Sized + ChimesAuthUser<T> + DeserializeOwned, {
fn permit(
&self,
ust: &Option<T>,
req_method: &String,
url_pattern: &String
) -> bool;
fn authenticate(&self, token: &String) -> Option<T>;
}Required Methods
检查用户是否能够通过指定的URL 根据系统的配置来确定是否能够通过这个URL请求
- ust为None值 此时根据req_method和url_pattern查询到该url为bypass=anonymous的模式,则返回true 此时根据req_method和url_pattern查询到该url为bypass=user的模式,则返回false 此时根据req_method和url_pattern查询到该url为bypass=permit的模式,则返回false
- ust为Some值 此时根据req_method和url_pattern查询到该url为bypass=anonymous的模式,则返回true 此时根据req_method和url_pattern查询到该url为bypass=user的模式,则返回true 此时根据req_method和url_pattern查询到该url为bypass=permit的模式,则: a. 用户拥有可以访问该权限的角色:返回true b. 用户拥有可以访问该权限的资源: 返回true c. 用户不满足a和b,则返回false
fn authenticate(&self, token: &String) -> Option<T>
fn authenticate(&self, token: &String) -> Option<T>
检查Authentication信息是否为有效的用户信息 可以做如下处理
- token是一个唯一的字符串信息,通过以该token为key,从存储(数据库或Redis或内存)中查询到该Key所代表的用户信息;
- token是一个JWT Token,则解析该Token以获得登录的用户名等信息
- 再通过用户信息去查询用户详细信息
- 返回None表示该token已失效,返回Some表示该Token有效,且可以找到对应的帐户信息