0

我有一个如下所示的登录 API:

api.php

Route::post('/login', [LoginController::class, 'login']);

登录控制器.php

public function login(Request $request) {
        $fields = $request->validate([
            'email' => 'required|string',
            'password' => 'required|string'
        ]);

        // Check email
        $user = User::where('email', $fields['email'])->first();

        // Check password
        if(!$user || !Hash::check($fields['password'], $user->password)) {
            return response([
                'message' => 'Bad creds'
            ], 401);
        }

        $token = $user->createToken('myapptoken')->plainTextToken;

        $response = [
            'user' => $user,
            'token' => $token
        ];

        return response($response, 201);
    }

我从我的 Vue.js 前端组件调用这个 API:

Login.Vue 中的脚本

<script>
export default {
  name: 'Login',

  data() {
    return {
      user: {
        email: null,
        password: null
      },
      loading: false,
      error: null
    }
  },

  methods: {
    async login() {
      this.error = null;
      try {
        await this.$store.dispatch('login', this.user);
        await this.$router.push({ name: 'posts' });

      } catch (error) {
        this.error = error;
      } 
      finally {
        this.loading = false;
      }
    }
  }
}
</script>

存储/index.js

async login({ commit }, user) {
          await repository.createSession();
          const { data } = await repository.login(user);
          commit('SET_USER', data);
          sessionStorage.user = JSON.stringify(data);
          sessionStorage.user_token = data.token;
        }

问题是它仅在 Fiddler 也在运行时才有效。没有 Fiddler,我不会收到任何错误,但我也无法登录。有什么问题?

4

0 回答 0