在 auth.interceptor.ts 里判断,token 是否过期:

isExpiredToken: 通过服务器端返回的错误类型判断。

如果确实过期了,首先调用 handleExpiredToken, 返回的 Observable 对象,使用该 token,重新发送之前因为 token 过期而失效的请求:createNewRequestWithNewToken:

stream 是一个 BehaviorSubject:

this.oAuthLibWrapperService.refreshToken, 这个方法刷新的是 Access Token. 如果失败,说明 refresh Token 也过期了,此时先调用第 135 行的代码,handleExpiredRefreshToken,先处理 refresh token 的过期问题。

refresh access token: 需要传旧的 refresh token,但是 response 里也返回了新的 refresh token.

Spartacus 显示 “Your session has expired. Please login again.” 的逻辑:

如果 refresh token 也过期了,只能重新登录了。

this.authService.coreLogout, 首先登出,然后 this.routingService.go({ cxRoute: ‘login’});

把用户重定向到登录页面:

最后显示 session expired 的错误提示消息,key 为:httpHandlers.sessionExpired

更多Jerry的原创文章,尽在:“汪子熙”:

SAP Spartacus 因为 refresh token 刷新令牌过期后显示用户重新登录页面的逻辑相关推荐

  1. 关于 SAP Spartacus Loader Meta Reducer 的用途 - loading 在 true 和 false之前切换的逻辑

    为了给用户更好的反馈,基于他们的行为,我们经常需要保留诸如"正在加载购物车"."获取用户地址失败"等信息. 对于每个单独的应用程序状态,我们必须将元数据放在旁边 ...

  2. SAP Spartacus My Company list focus事件触发后,控件border的默认效果

    在下面的状态下敲回车键: 在下列的状态下敲回车键: 更多Jerry的原创文章,尽在:"汪子熙":

  3. SAP Spartacus cms service取完page信息后的回调callback

    看这个请求: url: https://s-dev0.eastus.cloudapp.azure.com:9002/occ/v2/electronics-spa/cms/pages?fields=DE ...

  4. Ant Design Pro v5 正式版从零开始实战 Refresh Token 视频教程(13 个视频)

    Ant Design Pro v5 正式版从零开始实战 Refresh Token 视频教程(13 个视频) Ant Design Pro v5 正式版出来了,跟之前的版本在代码上有些细微的差异,这套 ...

  5. 关于OAuth 协议中刷新令牌存活时间的讨论

    OAuth 2.0 协议里,刷新令牌用于在当前访问令牌到期时获取新的访问令牌. 有关更多信息,请参阅 OAuth 2.0 RFC. 以 LinkedIn 提供的 API 为例. LinkedIn 提供 ...

  6. 为什么 OAuth 里除了 Access Token 之外,还需要 Refresh Token?

    What is the purpose of a "Refresh Token"? 问题:我有一个与 YouTube Live Streaming API 集成的程序.我以每 50 ...

  7. SAP Spartacus 中的依赖注入 Dependency Injection 介绍

    先了解 Angular 中的依赖注入 依赖项是指某个类执行其功能所需的服务或对象.依赖项注入(DI)是一种设计模式,在这种设计模式中,类会从外部源请求依赖项而不是让类自己来创建它们. Angular ...

  8. 使用identity+jwt保护你的webapi(三)——refresh token

    前言 上一篇已经介绍了identity的注册,登录,获取jwt token,本篇来完成refresh token. 开始 开始之前先说明一下为什么需要refresh token. 虽然jwt toke ...

  9. 基于spring security实现vue2前后端分离的双token刷新机制(完整代码详解,含金量拉满!)

    目录 一.前言: 核心功能概要: 通过加密算法创建一个用户: 二.后端 代码详解: 1.代码整体结构: 2.所需依赖: 3.UserDetailServiceImpl拦截用户登陆: 4.所需工具类 4 ...

最新文章

  1. 怎样把HTML文件改成PHP,请问你们怎么将html的文件的内容改变为php
  2. 浅析ajax原理与用法
  3. 【Android 进程保活】oom_adj 值 ( 简介 | 查询进程 PID | 根据进程 PID 查询 oom_adj 值 )
  4. 030_jdbc-mysql事务
  5. OS X 键盘快捷键
  6. ospf 环回口的路由条目_【网络工程师配置篇】——OSPF汇总配置!
  7. Windows Phone 开发环境的搭建
  8. 从Android上的相机裁剪图像
  9. 安卓自定义控件,自行绘制文字
  10. 【图像配准】基于matlab SIFT图像配准【含Matlab源码 148期】
  11. word2vec字向量_Anything2Vec:将Reddit映射到向量空间
  12. html文件导入奥维,【干货】奥维地图 | 如何导入高程数据
  13. 2020年会必备,Excel轻松制作抽奖小游戏
  14. android 平面图app_安卓app设计规范整理和Android APP设计篇
  15. 2022拼多多详情/拼多多商品详情/拼多多sku详情
  16. win10 SystemParametersInfo 设置屏保 不好使_抖音网红屏保时钟软件(附使用教程)...
  17. C#写入注册表打印异常提示无法写入到注册表项
  18. 新手小白也能会的从淘宝口令到下载完淘宝直播回放视频的步骤详情
  19. 提供推荐--集体智慧编程
  20. windbg的k命令

热门文章

  1. 机器学习和深度学习笔记(Matlab语言实现)
  2. node.js Stream Buffer FsPromise
  3. java并发编程实战学习笔记之基础知识与对象的共享
  4. 用jquery校验radio单选按钮(原创)
  5. mysqli 启动出错
  6. 为甚么 国企做互联网总做不起来?
  7. Android开发5——文件读写
  8. SQL高级---SQL UNION 和 UNION ALL 操作符
  9. 【转载】jQuery学习笔记
  10. SharpReader的效率:支持meme聚合