Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication 如何使用Nuxtjs实现Auth0服务器端?_Authentication_Nuxt.js_Auth0_Server Side Rendering - Fatal编程技术网

Authentication 如何使用Nuxtjs实现Auth0服务器端?

Authentication 如何使用Nuxtjs实现Auth0服务器端?,authentication,nuxt.js,auth0,server-side-rendering,Authentication,Nuxt.js,Auth0,Server Side Rendering,我有一个Nuxt应用程序,其身份验证已在通用模式下运行 我正在尝试将身份验证服务转换为Auth0。我遵循了,但我发现这是一个客户端库,因为它使用了很多在Nuxt服务器端不可用的“窗口”内容 然而,我通过将其作为客户端插件并将所有函数(即在生命周期挂钩中调用authservice)包装在进程中,使其工作正常。client检查。它的工作原理是“某种程度上”,因为在未登录的情况下进入受保护页面时,它会在重定向到登录页面之前闪烁页面(因为它也在服务器端呈现,但我认为只有在客户端交付后才会进行检查) 我现

我有一个Nuxt应用程序,其身份验证已在通用模式下运行

我正在尝试将身份验证服务转换为Auth0。我遵循了,但我发现这是一个客户端库,因为它使用了很多在Nuxt服务器端不可用的“窗口”内容

然而,我通过将其作为客户端插件并将所有函数(即在生命周期挂钩中调用authservice)包装在
进程中,使其工作正常。client
检查。它的工作原理是“某种程度上”,因为在未登录的情况下进入受保护页面时,它会在重定向到登录页面之前闪烁页面(因为它也在服务器端呈现,但我认为只有在客户端交付后才会进行检查)

我现在的问题是:
我可以做些什么来将检查添加到服务器端?(或者至少确保在重定向之前不刷新受保护的页面)

到目前为止,我所尝试的:

  • 在存储中保存有效负载和登录状态,并签入一些自定义中间件,但这并没有奏效
另外,在我看来,@nuxt/auth已经过时了,或者是其他什么东西。在我使用新的auth0 universal时,它使用auth0锁


有人对如何解决这个问题有什么建议吗?提前谢谢

不确定这是否有帮助,并且只回答了几个问题(很久以前的其他帐户)


更新。。我读了我的答案,然后是问题标题(我想我的答案确实涵盖了你的一些背景),但是关于标题,你也可以使用
auth
作为一个参考。然后你可以在页面被点击之前处理这些内容


我不确定您的代码是如何实现的,但这可能会有所帮助(希望如此)

如果你不使用,我强烈推荐

//index/store.js
//至少要初始化存储,但它很可能会被使用。。
//page.vue
...
{{test}}
...
...
数据(){
如果(!this.$auth.loggedIn){
const test='仅此项将加载,无闪存'
返回{test}
}
}
$auth.loggedIn
是内置的,我在某个地方读到过。。在文档中

这将解决无闪存问题,您还可以利用加载程序屏幕和asyncData在渲染视图之前检查
状态
,以避免闪存,并在数据挂起时填充数据

您也可以尝试使用Vuex操作,我目前正在使用这两个操作。了解

//store/index.js
从“axios”导入axios
导出常量操作={
nuxtServerInit({commit},{request}){
//如果您的请求或其他服务器端内容中有用户,这是很好的
if(request.user)commit('SET_user',request.user)
},
异步获取用户({commit},用户名){
const user=wait axios.get(`/user/${username}`)
if(user)commit('SET_user',user)
}
}
导出常量突变={
设置用户(状态、用户){
//现在就简单一点
state.auth.user=user | | null
}
}
第二个是使用页面本身上的
fetch()
方法组合的

//page.vue
异步获取({$auth,store}){
等待store.dispatch('GET_USER',$auth.$state.USER)
}
现在,您可以根据需要在代码中调用
$auth.user

$auth.user
是另一个内置的I read..某处

您还可以使用
$auth.loggedIn
调用
$auth.user
,检查在登录
$auth.user&&$auth.loggedIn
之后是否存在
用户

它可能是
this.$auth.
,这取决于您试图引用它的位置

我学习了
asyncData()
首先获取调用并在我的服务器中登录,然后
data()
也在服务器控制台中记录值(
false
null
),但在我的勇敢控制台中,它们是
未定义的
,我想知道这个lol的答案

我一直在努力让
Auth0
按照我想要的方式使用JWTs,但在我不断爬行的过程中,我发现了一些有用的东西(即使是在你提到的旧演示中,也没有任何关于
锁的东西……)。另外,在
express
和myAPI方面。。。无论如何,希望这对(某人)有所帮助