vue.js - Nuxt Auth 中间件向用户端点发出空请求
问题描述
每个人。我正在尝试构建一个登录模块。我正在使用 Nuxt auth 来处理我的登录工作流程并为我的 RestAPI 使用烧瓶。nuxt.config.js
我已经按照文档中的说明在我的文档中设置了身份验证选项,并将 URL 调整为我的烧瓶 API,如下所示:
auth: {
strategies: {
local: {
endpoints: {
login: { url: '/auth/', method: 'post', propertyName: 'token' },
logout: { url: '/auth/logout', method: 'post' },
user: { url: '/users/username/', method: 'post', propertyName: 'User' }
},
// tokenRequired: true,
// tokenType: 'bearer'
// autoFetchUser: true
}
}
}
这是我的登录组件:
<template>
<div>
<form @submit.prevent="userLogin">
<div>
<label>Username</label>
<input type="text" v-model="login.username" />
</div>
<div>
<label>Password</label>
<input type="text" v-model="login.password" />
</div>
<div>
<button type="submit">Submit</button>
</div>
</form>
</div>
</template>
<script>
export default {
data() {
return {
login: {
username: 'newUser27',
password: 'ninjaTurtles1!'
}
}
},
methods: {
async userLogin() {
try {
let response = await this.$auth.loginWith('local', { data: this.login })
console.log(response)
} catch (err) {
console.log(err)
}
}
}
}
</script>
现在,我遇到的问题是,当我点击登录按钮以调用提交表单并调用我的登录函数时,对登录路由的调用成功,请求包含表单中的用户名和密码,并且我得到回复。如图所示:
但是,由于请求正文为空,所以调用用户端点失败,因此服务器无法处理请求,如下图所示: 调用用户端点时的请求正文为空。
我想我的问题是我是否有某种错误配置导致对用户端点的请求正文为空,从而未能在我的用户中长并保持为this.$auth.loggedIn
假this.$auth.user
。
我已经尝试过:
- 我尝试将我的 API 中的请求切换到 Post 以查看是否有任何不同,如上图所示,它没有。get 和 post 请求在到达 API 时都有一个空的正文。
- 我已经尝试在用户端点中设置
propertyName
为。正如这里提到的。仍然遇到同样的问题。false
- 我已经尝试
this.$auth.fetchUser()
在组件中使用我的登录功能中的方法,就在let response = await this.$auth.loginWith('local', { data: this.login })
. 正如这个答案r 中所建议的那样。仍然遇到同样的问题。
任何建议或帮助将不胜感激。
解决方案
根据登录端点,auth 必须接收'token'
propertyName,但是在您的响应屏幕截图中显示的是您收到的'auth'
属性作为响应,您应该更改后端以直接返回令牌属性(不是嵌套属性)或更改您的登录端点propertyName
,您可以通过以下方式检查令牌设置是否正确称呼
console.log( this.$auth.getToken('local') );
推荐阅读
- node.js - img src 属性将我的请求发送到不同的路由
- javascript - 未通过 Redux 处理的 Promise
- c# - C# 完成后重复一个 mp3 文件
- php - 使用phpmailer发送表单时没有页面刷新
- c - ESP32 如何重置与 PCNT 一起使用的 GPIO 引脚,以便它们也可用于 EXT1 从深度睡眠中唤醒?
- codenameone - Codename One 应用程序的线程计数
- python-3.x - 两个看起来应该做同样事情但输出不同结果的python循环?
- php - 为 Angular 应用程序配置 php 后端和 mysql 数据库
- java - Spring MockMVC redirectUrlPattern 抛出“No Ant-style path pattern”
- dart - Dart 2.0 中是否有任何密封类替代方案?