SAP Spartacus 会使用 Session timeout 吗?

问题:Where to configure session timeout in Spartacus

答案

我假设您使用 Hybris OAuth 服务器的默认身份验证流程(密码流程)。 在这种情况下,会话长度是通过后台的 OAuth 客户端设置来控制的。

但是,要知道会话何时到期,您可以检查令牌有效负载 (AuthStorageService.getToken)。属性之一是到期时间,可用于了解会话何时实际结束。

Marcin is correct. Spartacus is 100% API driven, interacting with Commerce backend by sending request to configured endpoints. These endpoints require an access token to be sent with the request, and this access token needs to be retrieved by following the Client Credentials Flow that is defined by the OAuth specification.

As long as you log in successfully, you can find access token issued by Commerce backend in Chrome dev tools, application tab -> Local storage as highlighted below:

SAP Spartacus 会使用 Session timeout 吗?

the field expires_at stores the value of exact date and time when token will be expired.

you can use the code below in console to convert it to human readable string:

new Date(1627660784476).toGMTString();

SAP Spartacus 会使用 Session timeout 吗?

You can control the token time-to-live value via configuration in backoffice by property: oauth2.accessTokenValiditySeconds

SAP Spartacus 会使用 Session timeout 吗?

See document for detail:

https://help.sap.com/viewer/d0224eca81e249cb821f2cdf45a82ace/2105/en-US/3d3ea6a4d5fa486aa324ce278fa2afc3.html?q=oauth2.accessTokenValiditySeconds

SAP Spartacus 会使用 Session timeout 吗?

if you need to code in Spartacus to know when the token will be expired, inject AuthStorageService in your app.module.ts, and then access expires_at property of result returned by getToken method.

export class AppModule {
  constructor(private authService: AuthStorageService){
    const token: Observable<AuthToken> = this.authService.getToken();

    token.subscribe((token) => console.log('expire at:' , token.expires_at));
  }
}

SAP Spartacus 会使用 Session timeout 吗?

更多Jerry的原创文章,尽在:"汪子熙":
SAP Spartacus 会使用 Session timeout 吗?

上一篇:深入理解浏览器的缓存机制


下一篇:Flask 学习之cookie和session操作