本文讨论下图这些高亮的 Authorization 头部字段,是如何被用户登录后从 commerce 端请求的 Access Token 填充的:

这些 interceptor 通过 HTTP_INTERCEPTORS token 注册到应用内:

实现了 HttpInterceptor 的接口:

这些 http interceptors 注册的方式都一样:

@NgModule({imports: [CmsOccModule, SiteContextOccModule],
})
export class BaseOccModule {static forRoot(): ModuleWithProviders<BaseOccModule> {return {ngModule: BaseOccModule,providers: [{provide: HTTP_INTERCEPTORS,useExisting: WithCredentialsInterceptor,multi: true,},provideDefaultConfig(defaultOccConfig),provideConfigValidator(occConfigValidator),],};}
}

给 request 添加 authorization 字段:

前提是当前请求的 url 包含了 base site:

没登录之前是没有 Access Token 的:

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

SAP Spartacus OCC 请求头部的 Access Token 是如何被添加的相关推荐

  1. SAP Spartacus 用户请求中的 current id 是从哪里来的

    从 SAP Spartacus 成功登录之后,能在 Local Storage 里观察到 userId 为 current: 这个 current id 从哪里来的呢?在 Spartacus 应用初始 ...

  2. SAP Data Intelligence API如何获得Access Token - no authentication means found

    试图使用postman访问SAP Data Intelligence graph API时,遇到401 unauthorized的错误: no authentication means found A ...

  3. SAP Spartacus localStorage 里存储的 auth Token 过期时间

    Chrome 开发者工具里存储了access token 存储的时间和过期时间: access_token_stored_at expires_at 这两个字段的值,放到 Date 构造函数内,打印出 ...

  4. 如何找到 SAP Spartacus OCC cms page 发送请求时读取 API endpoint 的代码

    CmsComponentAdapter: OccCmsComponentAdapter: 此处发起对 home page 的调用: 读取 CMS API 的 url: 这就是我在代码里配置的 endp ...

  5. SAP Spartacus HTTP请求的错误处理机制

    HttpInterceptor来自Angular标准库,而构造函数里注入的handlers,类型为HttpErrorHandler,后者是Spartacus自己实现的. HttpErrorHandle ...

  6. SAP Spartacus名为Configuration的injection token

    Configuration injection token创建的factory方法: factory方法返回的值是{}, inject(DefaultConfig)和inject(RootConfig ...

  7. SAP Spartacus HTTP请求url里的语言和货币参数是如何加上去的

    答案是通过site-context.interceptor.ts的intercept方法: 添加后: 添加的language和currency参数在Chrome调试器里的截图: 要获取更多Jerry的 ...

  8. 如何使用async和await这对组合设计统一的取Access Token的函数

    最近我在使用SAP云平台的机器学习API做和SAP系统的集成,因为SAP Cloud Platform Leonardo上的机器学期API,每次消费时需要传一个Access Token,故在每次实际调 ...

  9. SAP Spartacus 用户登录成功后,Access Token 持久化到浏览器 local storage 的执行原理

    下图第1487行代码,调用Angular HTTP library,往this.tokenEndpoint指向的API发送HTTP post请求,参数为用户在login form里输入的用户名和密码: ...

最新文章

  1. 为什么学习Python数据分析
  2. “超级课程表”余佳文:初生牛犊不怕虎
  3. js实现反恐精英+曲线图+饼状图
  4. 人们通常先在线性表尾部临时添加一个_数据结构学习笔记-线性表
  5. 计算机视觉与深度学习 | 粒子群算法与遗传算法(GA)及与蚁群算法(ACO)比较
  6. 使普通的旧Java OSGi兼容
  7. linux查找postgre进程,postgresql数据库某一个进程占用大量CPU,问题排查详解
  8. 无限场景开放式仿真器 PGDrive:Improving the Generalization of End-to-End Driving through Procedural Generation
  9. 清浊音判别 matlab,matlab语音信号处理如何判别清浊音?
  10. C++ 为什么要引入异常处理机制
  11. linux gns3使用教程,Linux下GNS3报错解决方法
  12. 对比iOS中的四种数据存储
  13. linux查看内网命令,nmap命令查看内网信息的几个...-centos6.3中lspci查看硬件信息提...-学习linux cut 命令的用法_169IT.COM...
  14. 卫星通信(SATCOM)设备的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  15. PRIMARY KEY与identity(1,1)的比较
  16. 你知道黑体、仿宋、楷体、宋体、微软雅黑、新宋体也是有版权的吗?是否还能用?
  17. Jzoj5603 xiz
  18. 阿里巴巴大数据实践之数据建模
  19. Uninstalltool-专业卸载工具
  20. Creo建模(持续更新)

热门文章

  1. [置顶]C#执行Excel宏模版的方法
  2. 【Java学习笔记之一】java关键字及作用
  3. APC UPS报错一例
  4. UML模型中的图-实现图【组件图、配置图】
  5. 机房系统(三)——【充值 退卡 】
  6. Ocean的礼物(线段树单点修改)
  7. 软件测试白皮书-判定表法
  8. BZOJ 2127: happiness
  9. mysql5.6优化建议
  10. iOS开发UI篇——Button基础