【问题标题】:How to work with Authentication in Framework7 Vue如何在 Framework7 Vue 中使用身份验证
【发布时间】:2018-02-13 03:59:03
【问题描述】:

我正在使用最新的 Framework7 Vue Webpack 入门包。

我的默认页面 ('/') 是登录页面。我的计划是在应用程序中的任何页面被请求时立即运行 xhr 请求。

  1. 所以我尝试将 isLoggedIn() 调用放在 onF7Ready(f7) 中。如果登录,我想我会用它把用户带到主屏幕 - self.$f7router.navigate('/home/');否则我会将用户带到登录页面。然后我了解到 $f7router 只能在路由组件中访问。
  2. 然后我想我会将isLoggedIn() 检查放在每个页面的pageInit() 中。所以我尝试将该代码放在 login.vue 文件中 on: { pageInit(e) { $f7router 在这里可用,但 self.$f7router.navigate('/home/');不起作用。同样的 self.$f7router.navigate('/home/');但是,如果我在同一个 login.vue 文件中的其中一种虚拟方法中使用它,它确实有效。

即使上面的代码确实有效,也必须有更好的方法来检查用户是否已登录,然后以比我正在做的更好的方式做事。除了 ('/') 之外,我的所有路由都需要身份验证。

谁能告诉我应该如何处理这个非常标准的问题?非常感谢。

【问题讨论】:

  • 我正在检查 ajax 请求,如果收到 401 则意味着我应该重定向到登录页面。

标签: javascript cordova vue.js vuejs2 html-framework-7


【解决方案1】:

我发现self.$f7router.navigate在pageInit()中是没有的,但是在pageBeforeIn()和pageInit()后面的其他函数中是有的。

旁注:我发现 pageInit() 对于这个特定的用例非常危险,因为每次导航到此页面时,页面都会运行 AJAX 请求,而不仅仅是在首次访问应用程序时。

【讨论】:

  • 文档为此付出了巨大的努力。我需要做的就是一场战斗。
猜你喜欢
  • 2018-11-27
  • 2017-08-14
  • 2021-05-10
  • 2020-01-31
  • 2021-07-20
  • 1970-01-01
  • 1970-01-01
  • 2019-04-03
  • 2018-05-03
相关资源
最近更新 更多