简体   繁体   English

Vuejs应用程序api登录调用响应出错

[英]Vuejs application api login call response gone wrong

The expected login api response is预期的登录 api 响应是

{"message":"success","data":{"id":2,"name":"name","email":"example@gmail.com","email_verified_at":null,"nrc":"12\/PABATA(N)7243942","phone_number":"234234234","account_status":"Active","created_at":"2021-01-05T13:37:08.000000Z","updated_at":"2021-01-05T14:44:08.000000Z","token":"189|1Z6MoqqnM8kd10phzweH0mbZY6CYlAvrkHih4R0G"}}

but the actual response from axios was但来自 axios 的实际响应是

{"email":"example@gmail.com","password":"fwefw324"}{"message":"success","data":{"id":2,"name":"UnionEA","email":"faroakkhan@gmail.com","email_verified_at":null,"nrc":"12\/PABATA(N)097238","phone_number":"09789333573","account_status":"Active","created_at":"2021-01-05T13:37:08.000000Z","updated_at":"2021-01-05T14:44:08.000000Z","token":"189|1Z6MoqqnM8kd10phzweH0mbZY6CYlAvrkHih4R0G"}}

I was also try from postman but the response got the same what I expected.我也尝试过 postman 但响应与我预期的相同。

JavaScript code is JavaScript 代码为

axios.post("/api/login", credentials).then((response) => {
    console.log(response.data);
    return dispatch("attempt", response.data.data.token);
  });

Laravel code what i calling as api /api/login Laravel 代码我称之为 api /api/login

<?php

namespace App\Http\Controllers\Api\v1;

use App\Http\Controllers\Controller;
use App\Models\User;
use App\Traits\ResponserTrait;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;

class LoginApiController extends Controller
{
use ResponserTrait;
public function login(Request $request)
{
    $user = User::where('email', $request->email)->first();

    if ($user && Hash::check($request->password, $user->password) && 
$user->account_status == config('enums.account_status')['INIT']) {
        return $this- 
>respondCreateMessageOnly(config('enums.account_status')['INIT']);
    }

    if (!$user || !Hash::check($request->password, $user->password)) 
{
        return $this->loginFailed('invalid email or password');
    } else {
        $token = $user->createToken('login-user')->plainTextToken;

        $user->token = $token;

        return $this->respondCollection('success', $user);
    }
}
}

if the response is a string.you can use this code to get the expected response.如果响应是一个字符串。您可以使用此代码来获得预期的响应。

JSON.parse("{"+response.split("}{")[1])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM