SAP Spartacus登录页面如下图所示:

通过login form用户输入的用户名和密码去换取token,拿到token后,调用另一个API,将token作为Authorization字段输入:

https://spartacus-dev2.eastus.cloudapp.azure.com:9002/occ/v2/powertools-spa/orgUsers/current?lang=en&curr=USD

该token同时也会维护到浏览器的local storage里:

user$的赋值逻辑:

ui Component template绑定到了user,暗示了这个user, 暗示了这个user,暗示了这个user在某个时间段之后,会发生变化,而UI的ngIf*需要根据该变化做出对应的反应:

上图这段代码的语义是:

ngOnInit(): void {this.user$ = this.auth.isUserLoggedIn().pipe(switchMap((isUserLoggedIn) => {if (isUserLoggedIn) {return this.userService.get();} else {return of(undefined);}}));}

如果用户已经登录,则调用userService.get, 使用access token调用user API去读取用户的name.

如果没有登录,返回空的Observable对象,这样登录页面就会显示id为login的Angular模板页面,提示用户在form页面上输入用户名和密码进行登录。

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

SAP Spartacus的登录页面的用户名显示逻辑相关推荐

  1. SAP Spartacus B2B User 页面的数据读取逻辑设计

    点击SAP Spartacus B2B的Users页面后: 触发selector: 看到user 列表: B2B user模块,从设计上说,位于Spartacus工程项目的feature-libs文件 ...

  2. 在SAP Spartacus产品明细页面用outlet显示自定义数据

    首先创建一个新的Angular module和Component: 这个新的module,因为要使用Outlet功能,所以需要从@Spartacus/storefront里导入OutletRefMod ...

  3. SAP Spartacus产品明细页面用Observable显示产品名称

    具体实现: import { Component, OnInit } from '@angular/core'; import { ActiveCartService, Product } from ...

  4. SAP Spartacus shipping address页面请求2 - Put Address

    注意,这是一个HTTP PUT请求: /occ/v2/electronics-spa/users/current/carts/00008679/addresses/delivery?addressId ...

  5. SAP Spartacus cxOutlet 里的 templatesRefs 的填充逻辑

    cxOutlet合集 SAP Spartacus自定义指令cxOutlet的工作原理 SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件 SAP Sparta ...

  6. SAP Spartacus not found页面的显示触发机制 - ErrorPageTemplate

    在什么情况下,SAP Spartacus会显示404 not found页面? 请求id为not-found的content page: not-found.handler.ts: semantic路 ...

  7. SAP Spartacus unit detail 页面显示后自动 focus 设置的原理

    这个自动 focus 设置的效果是:我们从 Spartacus Unit list 页面,随便选择一行,进入明细页面之后: 键盘 focus 会自动停留在 detail 页面(下图右边红色矩形框内)第 ...

  8. SAP Spartacus PageLayoutComponent 如何知道自己应该显示哪些具体内容

    我们以前介绍过,经过 SAP Spartacus 路由配置后的 routes 数组,其 route 数据结构的 Component 属性,清一色指向 generic 的 PageLayoutCompo ...

  9. SAP Spartacus的登录验证机制 - user login Authentication

    用户输入用户名和密码,点击login之后,向如下http endpoint发起POST请求: url: https://spartacus-dev2.eastus.cloudapp.azure.com ...

最新文章

  1. mysql 数据索引使用_mysql数据库正确建立索引及使用
  2. c语言程序转换成单片机语言,单片机编程常用到的类型转换 C语言程序实现
  3. 漫画:什么是字典序算法
  4. html与css重置代码,发个自己的CSS重置基础代码
  5. 云图说丨“真人?机器?傻傻分不清!” WAF Bot管理,带你慧眼辨“精”!
  6. linux服务器文件名称乱码,linux中文文件名乱码怎么解决?
  7. PHP版本不同可以导入导出吗,请教高人:两个php平台之间的数据导入导出
  8. 基于JAVA+Servlet+JSP+MYSQL的学生选课管理系统
  9. CentOS7.2中使用Kubernetes(k8s)1.4.6源码搭建k8s容器集群环境
  10. 时刻警戒当前终端目录
  11. Lottie 动画在项目中的使用总结
  12. Git更新本地分支信息
  13. pyodbc 测试连接 SQL Server 数据库
  14. win7计算机资源管理器卡住,如何解决win7系统资源管理器已停止工作的问题
  15. PX4、APM无人机仿真连接QGC地面站记录(udp连接、更改home点等)
  16. 2022-2028全球人造黄油结晶器行业调研及趋势分析报告
  17. 移动硬盘变本地硬盘,小编教你移动硬盘变本地硬盘怎么办
  18. 如何确定windows右下角弹出的窗口是哪个程序搞的鬼
  19. 重新排序(差分,贪心,排序不等式)
  20. 【51NOD 1585】买邮票送邮票

热门文章

  1. IT领域中混合云管理工具扮演什么角色?
  2. [C++] socket - 3 [线程简单例子 代码]
  3. 关于ListView 自定义 Adapter的问题
  4. 最常见的13种主数据管理(MDM)词汇和定义
  5. 2009设计大餐 Adobe CS4 全集下载
  6. EL表达式 JSTL(详解)
  7. Nginx 完整安装篇
  8. springmvc基础学习3---注解简单理解
  9. 在MAC中配置Tomcat+Nginx代理
  10. 【MariaDB】MariaDB编译参数