TokenService
https://github.com/ng-alain/delon/blob/master/packages/auth/src/token/token.service.ts
set(data: ITokenModel): boolean {
const res = this.store.set(this._options.store_key!, data);
this.change$.next(data);
return res;
}
ITokenModel: https://github.com/ng-alain/delon/blob/master/packages/auth/src/token/interface.ts
export interface ITokenModel {
[key: string]: any;
token: string | null | undefined;
/**
* 过期时间,单位:ms
* - 不管Simple、JWT模式都必须指定
*/
expired?: number;
}
SimpleGuard:
https://github.com/ng-alain/delon/blob/master/packages/auth/src/token/simple/simple.guard.ts
注入了 TokenService
@Injectable({ providedIn: 'root' })
export class SimpleGuard implements CanActivate, CanActivateChild, CanLoad {
private url?: string;
private get cog(): AlainAuthConfig {
return this.srv.options;
}
constructor(@Inject(DA_SERVICE_TOKEN) private srv: ITokenService, private injector: Injector) {}
private process(): boolean {
const res = CheckSimple(this.srv.get() as SimpleTokenModel);
if (!res) {
ToLogin(this.cog, this.injector, this.url);
}
return res;
}
// lazy loading
canLoad(route: Route, _segments: UrlSegment[]): boolean {
this.url = route.path;
return this.process();
}
// all children route
canActivateChild(_childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
this.url = state.url;
return this.process();
}
// route
canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
this.url = state.url;
return this.process();
}
}
在默认的 src\app\routes\routes-routing.module.ts 中使用了 SimpleGuard 来检查用户是否已经登录。
const routes: Routes = [
{
path: '',
component: LayoutBasicComponent,
canActivate: [startPageGuard, SimpleGuard],
canActivateChild: [SimpleGuard],
JWTGuard
https://github.com/ng-alain/delon/blob/master/packages/auth/src/token/jwt/jwt.guard.ts
TokenService的更多相关文章
- atitit.TokenService v3 qb1 token服务模块的设计 新特性.docx
atitit.TokenService v3 qb1 token服务模块的设计 新特性.docx 1.1. V3 新特性1 1.2. V2 新特性1 2. Token的归类1 3. Token的用途 ...
- atitit.TokenService token服务模块的设计
atitit.TokenService token服务模块的设计 1. Token的归类1 2. Token的用途2 2.1. 访问控制2 2.2. 编译原理术语)编辑2 2.3. 数据处理2 1. ...
- Spring Security OAuth2 开发指南
官方原文:http://projects.spring.io/spring-security-oauth/docs/oauth2.html 翻译及修改补充:Alex Liao. 转载请注明来源:htt ...
- Atitit. 项目文档目录大纲 总集合 v2
Atitit. 项目文档目录大纲 总集合 v2 -----Atitti.原有项目源码的架构,框架,配置与环境说明 v3 q511 -----Atitit.开发环境 与 工具 以及技术框架 以及 注意 ...
- Web APi之认证(Authentication)两种实现方式后续【三】(十五)
前言 之前一直在找工作中,过程也是令人着实的心塞,最后还是稳定了下来,博客也停止更新快一个月了,学如逆水行舟,不进则退,之前学的东西没怎么用,也忘记了一点,不过至少由于是切身研究,本质以及原理上的脉络 ...
- Atitit 修改密码的功能流程设计 attilax总结
Atitit 修改密码的功能流程设计 attilax总结 1.1. 注意点1 1.2. 设计修改用户密码功能时把用户ID保存在哪里?1 1.3. Ui设计1 1.4. 功能设计源码1 1.5. Agt ...
- [BTS] BizTalk With EF
System.TypeInitializationException: The type initializer for 'System.Data.Entity.Internal.AppConfig' ...
- asp.net单点登录(SSO)解决方案
前些天一位朋友要我帮忙做一单点登录,其实这个概念早已耳熟能详,但实际应用很少,难得最近轻闲,于是决定通过本文来详细描述一个SSO解决方案,希望对大家有所帮助.SSO的解决方案很多,但搜索结果令人大失所 ...
- ArcGIS API for Silverlight开发入门
你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我 都没关系.但你不能否认3G是一种趋势,最终我们每个人都会被包裹在3G网络中.1100也不是一成不变,没准哪天为了打击 ...
- 基于.Net的单点登录(SSO)解决方案
前些天一位朋友要我帮忙做一单点登录,其实这个概念早已耳熟能详,但实际应用很少,难得最近轻闲,于是决定通过本文来详细描述一个SSO解决方案,希望对大家有所帮助.SSO的解决方案很多,但搜索结果令人大失所 ...
随机推荐
- softirq和hardirq中断亲和度
/proc/interrupts 和 /proc/softirqs 两者是相互关联的,但它们各自记录的信息和作用有所不同,反映了硬中断和软中断的两个处理阶段. 两者的关系: 硬中断引发软中断: 硬中断 ...
- 各位Oracle DBA们,你们期待的在线实训环境终于来了
各位Oracle DBA,你们是否曾在学习.工作时遇到不得不上正式库测试的情况,如果没事发生那一切岁月静好,但若一不小心删了用户.删了表甚至删了库,可就是悲剧了--从做出开库测试这个决定起,胆战心惊就 ...
- C++第六节课 引用变量 指针的升级版
#include <iostream> using namespace std; // C++的引用 是C指针的升级 可以提高代码的稳定性和健壮性 // const 修饰的引用 是 常引用 ...
- jenkins Publish over SSH 的配置与使用
一.安装Publish over SSH 插件 二.在Configure System 配置Publish over SSH属性 Passphrase:如果私钥设置了密码就是私钥的密码,私钥没设置密码 ...
- Oracle ASM 常用巡检脚本
1.查看磁盘组 sqlplus "/ as sysasm" set line 200 set pagesize 200 select group_number,name,state ...
- k8s-NFS系统配置
k8s-NFS系统配置 NFS(network filesystem),nfs文件系统在k8s中主要用于持久化存储,可以被多个pod访问和共享数据. 特点 数据持久性 nfs为k8s的pod提供了一种 ...
- KubeSphere 社区双周报 | 2024.01.04-01.18
KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...
- Kubernetes 对接 GlusterFS 磁盘扩容实战
前言 知识点 定级:入门级 使用 Heketi Topology 扩容磁盘 使用 Heketi CLI 扩容磁盘 实战服务器配置 (架构 1:1 复刻小规模生产环境,配置略有不同) 主机名 IP CP ...
- 云原生爱好者周刊:这款支持全平台的 Podman Desktop 值得一试
开源项目推荐 Podman Desktop Companion Podman 桌面客户端,支持 macOS.Windows 和 Linux 平台,后端支持原生 Podman(仅支持 Linux).Po ...
- Rigid Body Simulation
目录 0 前言 1 核心技术 1.1 Semi-implicit Euler 1.2 刚体模拟 1.3 Collision 2 实现 X Ref 0 前言 声明:此篇博客仅用于个人学习记录之用,并非是 ...