关于自定义的登录机制在SAP Spartacus服务器端渲染(SSR)实施过程中遇到的问题

简介: 关于自定义的登录机制在SAP Spartacus服务器端渲染(SSR)实施过程中遇到的问题

问题背景

某客户使用了第三方的Authentication service来实现Spartacus用户的登录机制:image.png使用token,调用另一个API,获取user信息。


We found out that the problem was caused by using this.windowAdapter.getWindow().sessionStorage.* without previously checking if the sessionStorage is actually available. In SSR it was undefined.


If you wrap all the calls in an if (this.windowAdapter.getWindow().sessionStorage) {...} the PLP pages are being SSRed correctly.


As an additional, browser’s storage (sessionStorage, localStorage) API is not available in SSR, therefore code defensively.


自开发的用户认证:


image.pngsessionStorage和localStorage都无法在SSR模式下工作。image.pngThis is the reason of SSR not working on the pages where these objects are being used.


If window or localStorage objects are required to be used with SSR then include the library @ng-toolkit/universal .


An example of using window and localStorage objects with SSR can be referred at this article


最佳实践

最好不要在SSR模式下进行用户认证(user Authentication)相关的逻辑:


image.png解决方案

I can suggest you to try to inject the @Inject(PLATFORM_ID) protected platform: any (from @angular/core) to your custom-login.component.ts, and then check if the platform is a browser or a server with isPlatformBrowser() or isPlatformServer() ( both coming from @angular/common).



相关文章
|
4月前
|
前端开发 JavaScript 开发者
Spartacus 2211 客户成功启用 SSR
Spartacus 2211 客户成功启用 SSR
|
4月前
|
缓存 前端开发 JavaScript
Spartacus SSR 使用场景里,CDN 应该 cache 哪些类型的页面
Spartacus SSR 使用场景里,CDN 应该 cache 哪些类型的页面
|
4月前
|
JavaScript 中间件 API
Spartacus 2211 启用 SSR
Spartacus 2211 启用 SSR
|
4月前
|
存储 供应链 安全
SAP S4HANA 数据归档的实施方法
SAP S4HANA 数据归档的实施方法
|
4月前
|
存储 供应链 前端开发
Spartacus home page 渲染时,就会读取 carousel 里的 product 数据
Spartacus home page 渲染时,就会读取 carousel 里的 product 数据
|
4月前
|
存储 前端开发 Linux
在 SAP ABAP 系统里访问 FTP 服务器
在 SAP ABAP 系统里访问 FTP 服务器
|
4月前
|
XML 网络安全 开发工具
如何下载并安装 SAP ABAPGit,并完成 ABAP 服务器上 SSL 证书的配置试读版
如何下载并安装 SAP ABAPGit,并完成 ABAP 服务器上 SSL 证书的配置试读版
|
4月前
|
存储 Oracle 关系型数据库
服务器数据恢复—RAID5上层SAP+oracle数据恢复案例
**服务器存储数据恢复环境:** 某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列,其中有1块硬盘作为热备盘使用。上层划分若干lun,存放Oracle数据库数据。 **服务器存储故障&分析:** 该RAID5阵列中一块硬盘出现故障离线,热备盘自动激活替换故障硬盘,热备盘同步数据的过程中该raid5阵列中又有一块硬盘出现故障,RAID5阵列瘫痪,上层LUN无法正常访问。 因为本案例中存储控制器的磁盘检查策略严格,一旦某些磁盘性能不稳定,该型号存储控制器就将该块磁盘识别为坏盘,并将该块磁盘踢出RAID。一旦RAID中掉线的盘数到超过RAID级别允许掉盘的最大数量,该RAID将不可用,
服务器数据恢复—RAID5上层SAP+oracle数据恢复案例
|
4月前
|
前端开发 API UED
Spartacus SSR 期间使用 browser function 会导致 error,回退到 CSR
Spartacus SSR 期间使用 browser function 会导致 error,回退到 CSR
|
4月前
|
测试技术 API
使用 jMeter 给 Spartacus SSR 发送 100 个并发的 SSR 请求,全部被 SSR 响应了
使用 jMeter 给 Spartacus SSR 发送 100 个并发的 SSR 请求,全部被 SSR 响应了