Docs

Documentation versions (currently viewingVaadin 24)
Documentation translations (currently viewingChinese)

此页面为官方文档(http://vaadin.com/docs)的机器翻译版本。文中可能存在错误、不准确或表述不当之处。Vaadin 不保证此翻译的准确性、可靠性或及时性。

处理会话过期

如何检测会话过期,例如向用户显示登录视图。

您可以使用内置的 middleware InvalidSessionMiddleWare 来检测用户会话何时过期。

此中间件需要一个类型为 OnInvalidSessionCallback 的函数作为构造函数参数。 该函数应返回一个包含以下元数据的 LoginResult Promise:

error

指示登录尝试是否失败。

token

若登录成功,这是用于防止跨站请求伪造(CSRF)的令牌,可从 index.html 页面中提取。 有关更多信息,请参阅 Hilla 端点的 CSRF 保护

errorTitle

描述登录错误的简短文本。

errorMessage

更详细的登录错误说明。

示例

举例来说,您可以使用 InvalidSessionMiddleware 向用户显示登录视图。

Source code
connect-client.ts
import { ConnectClient, InvalidSessionMiddleware } from '@vaadin/hilla-frontend';
import { setSessionExpired } from '../auth';
const client = new ConnectClient({
  prefix: 'connect',
  middlewares: [
    new InvalidSessionMiddleware(async () => {
      setSessionExpired();
      const { LoginView } = await import('./login-overlay');
      return LoginView.showOverlay();
    }),
  ],
});
export default client;
connect-client.ts
login-overlay.ts
login-overlay.ts