首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路由更改的Sapper事件

路由更改的Sapper事件
EN

Stack Overflow用户
提问于 2019-11-04 10:15:21
回答 1查看 5.3K关注 0票数 9

如果用户没有经过身份验证,我需要重定向到登录页面。我需要类似于route.beforeEach in Vue.js的东西,理想情况是:

代码语言:javascript
复制
sapper.beforeRouteChange((to, from, next) => {

  const isAuth = "[some session or token check]";

  if (!isAuth) {
    next('/login')
  }

  next()
})

我发现了Sapper -保护路线(线路护卫)这个问题,但我认为它不足以满足我的需要。如果令牌或auth在运行时发生更改怎么办?还是被反应性覆盖了?

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

EN

回答 1

Stack Overflow用户

发布于 2020-04-21 04:21:19

您还可以在authenticationMiddleware.js文件中使用server.js

这是authenticationMiddleware.js文件

代码语言:javascript
复制
import { get, post } from "./../lib/api";
async function authenticationMiddleware(req, res, next) {
    let user = null
    const cookies = require('cookie-universal')(req, res);
    if (cookies.get('token')) {
        try {
            user = await get("users/me", null, cookies.get('token'));
        } catch (e) {
            console.log('err at users', e.toString());
        }
        req.user = user
        req.token = cookies.get('token')
    } else {
        req.user = {}
        req.token = null
        cookies.set('token', null)
    }
    next();
}
export { authenticationMiddleware }

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58691278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档