当前位置: 首页 > 知识库问答 >
问题:

Nuxt auth模块未将登录用户设置为存储状态

常雅达
2023-03-14

我目前正在Nuxt Auth模块的帮助下开发身份验证功能

在前端,我运行Nuxt Js,在后端,我运行Laravel 5.7

在nuxt中。配置。js我已经设置了身份验证设置:

  auth: {
  strategies: {
      local: {
          endpoints: {
              login: { url: 'login', method: 'post', propertyName: 'access_token' },
              logout: { url: 'logout', method: 'post' },
              user: { url: 'user', method: 'get', propertyName: 'user' },
          }
      },
       tokenRequired: true,
       tokenType: 'bearer',
  }

},

在我的index.vue我有一个表格与登录方法:

        <template>
    <div>
      <div>
        <b-container>
          <b-row no-gutters>
            <b-col col lg="12">

            </b-col>
          </b-row>
          <b-row no-gutters>
            <b-col col lg="12">
                <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="120px" class="demo-ruleForm" label-position="top">
                  <el-form-item label="Email" prop="email">
                    <el-input v-model="ruleForm.email" ></el-input>
                  </el-form-item>
                  <el-form-item label="Password" prop="password">
                    <el-input type="password" v-model="ruleForm.password" autocomplete="off"></el-input>
                  </el-form-item>
                  <el-form-item>
                    <el-button type="primary" @click="login">Inloggen</el-button>
                    <!--<el-button @click="resetForm('ruleForm2')">Reset</el-button>-->
                  </el-form-item>
                </el-form>
            </b-col>
          </b-row>
        </b-container>
      </div>
    </div>
    </template>

    <script>
        export default {
            layout: 'login',
            data() {
                var validatePass = (rule, value, callback) => {
                    if (value === '') {
                        callback(new Error('Vul een wachtwoord in'));
                    } else {
                        callback();
                    }
                };
                return {
                    ruleForm: {
                        email: '',
                        password: '',
                    },
                    rules: {
                        password: [
                            { validator: validatePass, trigger: 'blur' }
                        ],
                        email: [
                            { required: true, message: 'Vul een email in', trigger: 'blur' },
                            { type: 'email', message: 'Vul een correct email adres in', trigger: ['blur'] }
                        ]
                    }
                };
            },
            methods: {

                async login() {
                    try {
                        await this.$auth.loginWith('local', {
                            data: {
                                username: this.ruleForm.email,
                                password: this.ruleForm.password
                            }
                        }).then(() => {
                                this.$router.push({ name: 'dashboard'})
                            })
                    } catch (e) {
                        console.log(e)
                    }
                },
            }
        }
    </script>

当我尝试登录时,正在调用异步函数“login”。返回与用户名和密码对应的用户。我唯一的问题是,当我在vuex状态下查看时,auth。loggedIn保持为false,auth保持为false。用户保持未定义状态。

我以为Nuxt Auth自动更新状态,还是我错过了什么?

任何帮助都将不胜感激: D

共有1个答案

后学
2023-03-14

我终于找到了解决办法。我必须将用户endpoint的propertyname设置为false

旧版本

      endpoints: {
          login: { url: 'login', method: 'post', propertyName: 'access_token' },
          logout: { url: 'logout', method: 'post' },
          user: { url: 'user', method: 'get', propertyName: 'user' },
      }

新版本

      endpoints: {
          login: { url: 'login', method: 'post', propertyName: 'access_token' },
          logout: { url: 'logout', method: 'post' },
          user: { url: 'user', method: 'get', propertyName: false },
      }

现在,用户将在状态中加载

 类似资料:
  • 本文向大家介绍vuex实现登录状态的存储,未登录状态不允许浏览的方法,包括了vuex实现登录状态的存储,未登录状态不允许浏览的方法的使用技巧和注意事项,需要的朋友参考一下 基础思路就是使用vuex状态管理来存储登录状态(其实就是存一个值,例如token),然后在路由跳转前进行登录状态的判断,可以使用vue-router的全局前置守卫beforeEach,也可以使用路由独享的守卫beforeEnte

  • 问题内容: 与使用控制台脚本保护的Kafka通信时出现问题。Kafka受保护,监听器受保护,机制由。 我做了什么:我尝试使用kafka脚本之一列出一些数据: 但是我明白了 命令失败,这是可以理解的,因为它由sasl保护。 因此,我尝试了如何向该命令添加客户端用户名/密码。首先,我尝试运行脚本,我曾经添加必要的文件。我很快发现我无法直接添加文件,我需要使用文件,所以我做到了。 我的属性文件(请记住,

  • 我正在使用圣杯3.1.4和角度JS。 页面上的某些部分仅适用于登录用户,我想限制对相应html模板的访问,以便只有他们才能访问它们。 我已经设置了Spring Security性,因此对这些模板的访问是受限的。< br >我遇到的问题是,第一次加载页面时,似乎所有的html模板都已加载。此时,用户没有登录,因此服务器返回401错误。一旦用户登录并试图导航到受限页面,angular检查模板缓存,发现

  • 摘要:Java选项允许Java使用计算机帐户的Windows信任存储。什么选项允许它对用户帐户使用Windows信任存储? 我们有一个在Windows客户端上运行的Java应用程序。应用程序从各种来源获取数据,其中一些来源使用的证书不在默认的文件中。 当用户选择访问外部数据的项目时,系统会提示他们下载外部站点的证书。由于我们的安全设置,文件对用户是只读的。由于JRE无法将证书导入,因此无法下载外部

  • 本文向大家介绍Vue中保存用户登录状态实例代码,包括了Vue中保存用户登录状态实例代码的使用技巧和注意事项,需要的朋友参考一下 首先我们假设,这里的登录组件(register.vue)是App.vue组件的子组件,是通过路由进入登录组件的。 登录组件中用户点击登录后,后台会传过来一个用户名,我的App.vue组件中需要拿到这个用户名,并将上面的“登录注册”字样变为“用户名”。 为了保证用户刷新后用

  • 问题内容: 因此,我目前正在运行已安装ldapjs的node.js。 我的目标是拥有一个使用ldapjs的系统,以允许用户使用用户名和密码登录。 我已经阅读了一段时间的http://ldapjs.org文档,但是正在努力理解ldap的整个思想以及ldapjs的实现。 我目前在文档中有这个 这使我可以运行以下内容并成功绑定到服务器。 但是我真的不确定从这里走到哪里,即使这是正确的方法… 理想的设置是