我正在 nuxt 中使用 ssr 开发应用程序。我遇到的问题是在构建和生成后运行“npm start”。该应用程序开始正常工作,但是当我尝试登录时它不起作用,尽管在开发模式下它运行良好。 api 是用 express 构建的,我使用令牌和 nuxt auth 作为身份验证方法。在 auth 策略中声明的服务器端点永远不会被执行,请使用登录端点处理程序上的 console.log() 来检查。任何人都知道我该如何解决这个问题?感谢您的时间!
登录组件脚本:
<script>
import { mapGetters } from 'vuex'
import index from './index.vue'
export default {
components: {
index,
},
data() {
return {
email: '',
password: '',
}
},
computed: {
...mapGetters(['isAuthenticated']),
},
methods: {
close() {
this.$router.push('/')
},
login() {
const button = document.querySelector('.center-form button')
button.disabled = true
button.innerHTML = '...'
const data = { password: this.password, email: this.email }
this.$auth
.loginWith('local', { data })
.then((x) => {
this.$auth.strategy.token.set(x.data.token)
this.$router.push('publicar-inmueble')
})
.catch((err) => {
console.log(err)
})
},
},
}
</script>
Nuxt 身份验证策略:
auth: {
strategies: {
local: {
token: {
property: 'token'
},
user: {
property: 'user'
},
endpoints: {
login: { url: '/server/api/usuarios/login', method: 'post', propertyName: 'data' },
user: { url: '/server/api/usuarios/mi-perfil', method: 'get', propertyName: 'data' },
logout: { url: '/server/api/usuarios/logout', method: 'delete' }
}
}
}
},
商店:
export const getters = {
isAuthenticated(state) {
return state.auth.loggedIn
},
loggedInUser(state) {
return state.auth.user
}
}