我有一个Nuxt应用,其身份验证已在通用模式下运行。
我正在尝试将身份验证服务转换为Auth0。我关注的是Vue quickstart,但是我发现auth0-js是一个客户端库,因为它使用了很多'window'的东西,而这些东西在Nuxt的服务器端是不可用的。
但是,我通过使它成为客户端插件并在process.client
检查中包装了所有功能(即在生命周期挂钩中调用authservice)而使其工作正常。之所以可以使用“某种”,是因为在未登录时进入受保护的页面时,它会在刷新页面之前将其闪烁,然后重定向到登录页面(因为它也在服务器端呈现,但是检查仅在将其交付给客户端时才进行)。我认为是客户端)。
我现在的问题是:
我该怎么做才能将支票也添加到服务器端?(或至少确保不刷新受保护的页面)重定向之前)。
到目前为止,我已经尝试过:
另外,在我看来@ nuxt / auth已过时,或者nuxt auth0 example也已过时。当我使用新的auth0通用时,它使用auth0-lock。
有人对如何解决此问题有建议吗?预先感谢!
答案 0 :(得分:2)
不确定这是否有帮助,仅回答了几个问题(很久以前是其他帐户)。
更新 ..我先阅读答案,然后回答问题标题(我认为我的回答确实涵盖了您的部分情况),但是关于标题,您也可以使用{{1} }作为plugin。然后,您可以在页面被点击之前在那里处理内容。
我不确定您的代码是如何实现的,但这可能(希望)有所帮助。
如果您不使用Vuex,我强烈建议您使用。 Nuxt Vuex Store Guide
auth
// index/store.js
// At least have the store initialized, but its most likely going to be used..
// page.vue
<template>
...
<div v-else-if="!$auth.loggedIn">
{{ test }}
</div>
...
...
data() {
if (!this.$auth.loggedIn) {
const test = 'Only this will load, no flash'
return { test }
}
}
是内置的,我在文档中的某处读取了它。
这将解决无闪存问题,您还可以利用加载程序屏幕和asyncData在呈现视图之前检查$auth.loggedIn
,以避免闪存和如果挂起填充数据。
您也可以尝试使用 Vuex Actions ,目前我正在使用这2种游戏。了解nuxtServerInit()
state
第二个是使用页面本身上的// store/index.js
import axios from 'axios'
export const actions = {
nuxtServerInit ({commit}, {request}) {
// This is good if you have the user in your request or other server side stuff
if (request.user) commit('SET_USER', request.user)
},
async GET_USER({ commit }, username) {
const user = await axios.get(`/user/${username}`)
if (user) commit('SET_USER', user)
}
}
export const mutations = {
SET_USER(state, user) {
// simple set for now
state.auth.user = user || null
}
}
方法合并的。
fetch()
现在,您可以根据需要在代码中调用// page.vue
async fetch({ $auth, store }) {
await store.dispatch('GET_USER', $auth.$state.user)
}
。
$auth.user
是我在..somewhere ..
您还可以使用$auth.user
来呼叫$auth.user
,以检查是否$auth.loggedIn
在登录user
之上是否存在。
根据您尝试引用它的位置,它可能是$auth.user && $auth.loggedIn
。
我了解到this.$auth.<value>
首先被调用并登录到服务器中,然后asyncData()
也在服务器控制台中记录值(data()
,false
),但是在我的勇敢游戏机是null
,我想回答这个问题
我一直在努力尝试使undefined
能够与 JWT 一起工作,但是随着我不断地爬行,我发现了一些有用的内容(即使在诸如您提到的那个,Auth0
东西什么也没有...)。同样就lock
和我的 API 而言...总之,希望对您有所帮助。