从 SAP Spartacus 成功登录之后,能在 Local Storage 里观察到 userId 为 current:

这个 current id 从哪里来的呢?在 Spartacus 应用初始化的时候,从浏览器的 local storage 里取的。参考下图 syncWithStorage 方法:

取到之后,设置到内存中:this.userIdService.setUserID:

手动清除浏览器 Local Storage 之后,F5 刷新页面:

此时 userId 被重新设置成 anonymous:

anomymous 在 Spartacus 的设置里是一个常量:OCC_USER_ID_ANONYMOUS:

点了 sign in 之后:

使用用户输入的用户名,密码,以及 Spartacus 应用的 client_id 和 client_secret, 去换取 Access Token:

换取 token 的 url 为:

https://20.83.184.244:9002/authorizationserver/oauth/token

换取 token 之后,当前用户名被硬编码成 current,即常量 OCC_USER_ID_CURRENT:

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

SAP Spartacus 用户请求中的 current id 是从哪里来的相关推荐

  1. SAP Spartacus 用户认证的实现

    文章目录 UserAuthModule Authentication Flow AuthService Storing Tokens and User Identifiers 用户认证的典型流程和包含 ...

  2. 【2012百度之星/资格赛】H:用户请求中的品牌 [后缀数组]

    时间限制: 1000ms 内存限制: 65536kB 描述 馅饼同学是一个在百度工作,做用户请求(query)分析的同学,他在用户请求中经常会遇到一些很奇葩的词汇.在比方说"johnsonj ...

  3. 【2012百度之星/资格赛】H:用户请求中的品牌

    时间限制:  1000ms  内存限制:  65536kB 描述 馅饼同学是一个在百度工作,做用户请求(query)分析的同学,他在用户请求中经常会遇到一些很奇葩的词汇.在比方说"johns ...

  4. SAP Spartacus用户登录之后读取用户信息的HTTP请求

    让我有点吃惊的是,如下图所示: 明明我是以中文登录,但这个HTTP请求的url里,lang参数仍然是en: https://spartacus-dev0.eastus.cloudapp.azure.c ...

  5. Angular 事件绑定语法在 SAP Spartacus Popover Component 中的一个应用

    要绑定到事件,请使用 Angular 的事件绑定语法.此语法由等号左侧括号内的目标事件名和右侧引号内的模板语句组成.在下面的示例中,目标事件名是 click ,模板语句是 onSave() . < ...

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

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

  7. SAP Spartacus OCC 请求头部的 Access Token 是如何被添加的

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

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

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

  9. Subject 在 SAP Spartacus Popover Component 中的应用

    Subject 是 Rxjs 里的一个工具对象. Subject 是一种特殊类型的 Observable,它允许将值多播到许多观察者. Subject 就像 EventEmitters. 每个 Sub ...

最新文章

  1. NMSE考试常见问题
  2. c ++atoi函数_atoi()函数以及C ++中的示例
  3. toj 4609 Internal Rate of Return
  4. CSS(一)sytle
  5. 201计算机基础知识,201年计算机应用基础备考练习题及答案
  6. iview table数据直接导出_使用iview的exportcsv怎样导出嵌套数据
  7. vc listview 大图标间距设置
  8. 解决响应式布局border带来的麻烦
  9. 【IScroll深入学习】解决IScroll疑难杂症
  10. Linux网络下载管理工具(lftp, ftp, lftpget, wget)
  11. 智能城市dqn算法交通信号灯调度_强化学习在智能交通灯中的应用
  12. STM32F401标准固件库配置
  13. Ubuntu开启SSH服务以及使用Putty远程控制的解决办法
  14. 用Python制作一个文件加密器(支持中文)
  15. 阿里云服务器访问windows下网页(内网穿透)
  16. 2022 年 3 月 — 区块链操作系统的开发回顾
  17. c语言中10的6次方阶乘运算,阶乘的运算方法
  18. 属性动画、帧动画、补间动画的介绍使用及对比
  19. 新生指南|笔记本电脑选购指南
  20. 浏览器f12监听element的值和变量的变化

热门文章

  1. 网线直连Window和Ubuntu
  2. redis的常用命令及实例讲解
  3. SpringMVC札集(05)——SpringMVC参数回显
  4. 《51单片机应用开发范例大全(第3版)》——第1章 单片机C语言开发基础
  5. js中的类、继承、闭包
  6. head first系列PDF资源
  7. Maven学习笔记(待完善)
  8. 从零写一个编译器(三):语法分析之几个基础数据结构
  9. python inspect.stack() 的简单使用
  10. InputStream 转 String