更改路线的拍手事件

时间:2019-11-04 10:15:21

标签: javascript svelte sapper

如果用户未通过身份验证,则需要将其重定向到登录页面。理想情况下,在Vue.js中我需要OlAttachmentType之类的东西:

route.beforeEach

我找到了Sapper - protected routes (route guard)这个问题,但我认为这不足以满足我的需求。如果令牌或身份验证在运行时更改怎么办?还是反应性所覆盖?

编辑1:我认为Sapper GitHub上的this问题解决了我的问题。

2 个答案:

答案 0 :(得分:0)

所以我将这段代码放置到/src/routes/_layout.svelte

  import AuthMiddleware from "../methods/authMiddleware.js";
  import { goto, stores } from '@sapper/app';
  const { page } = stores();

  if (typeof window !== "undefined" && typeof document !== "undefined") {
    page.subscribe(({ path, params, query }) => {
      const from = window.location.pathname;
      const redirect = (href) => { goto(href); }

      AuthMiddleware.beforeChange(from, path, redirect, params, query);
    })
  }

这是authMiddleware.js文件:

export default class AuthMiddleware {

  static beforeChange(from, to, redirect, params, query) {

    if (!AuthMiddleware._isUserAuthenticated()) {
      redirect("/login");
    }
  }

  // ~

  static _isUserAuthenticated() {
    return true; // TODO: Implement
  }
}

答案 1 :(得分:0)

您还可以在df$date <- as.Date(with(df, sprintf('19%d-%d-%d', YR, MO, DA))) 文件中使用authenticationMiddleware.js

这是server.js文件

authenticationMiddleware.js

例如https://github.com/itswadesh/sapper-ecommerce/blob/master/src/server.js