当我通过 API 从 laravel 中的数据库中获取用户数据时出现错误

Posted

技术标签:

【中文标题】当我通过 API 从 laravel 中的数据库中获取用户数据时出现错误【英文标题】:i am getting error when i am fetching user data from database in laravel through API 【发布时间】:2020-06-02 07:21:03 【问题描述】:

Hello Guys 现在正在研究 laravel api,一切都很完美,只是我面临的一个问题是,当我输入错误的用户名和密码时,我能够获取用户数据,但是当我输入正确的用户信息时,我遇到了异常,那就是无效证件。请帮帮我

这是我的模型代码

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class email extends Model

    protected $table = 'users';

& 这是我的控制器代码

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\email;

class EmailController extends Controller

   public function databyemail(Request $request)   
       $data = email::where('email', $request->email)->first();  
       if($data->password === bcrypt($request->password)) 
       
           return response()->json($data);
        
       else
             
           return response()->json(['error' => 'Incorrect credentials!']);  
            
           

 

【问题讨论】:

【参考方案1】:

你能不能试试Hash::check的方法来匹配密码。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Hash;
use App\email;

class EmailController extends Controller

   public function databyemail(Request $request)   
        $data = email::where('email', $request->email)->first(); 


        if( Hash::check( $request->password, $data->password ) ) 
            return response()->json($data);
        else
            return response()->json(['error' => 'Incorrect credentials!']);  
        
    

【讨论】:

@MuhammadSajidLakha 我认为您还有另一个问题。你的 laravel 版本是什么?首先,在匹配密码之前尝试dd($data)。并检查是否获取用户数据? @MuhammadSajidLakha 您应该在控制器类之前添加Use Hash; email)->first(); if($data->password === bcrypt($request->password)) return response()->json($data); else return response()->json(['error' => '不正确的凭据!']); 我的laravel版本是5.7 @MuhammadSajidLakha 我已经更新了我的答案。如果发生任何错误,请添加完整的错误状态。

以上是关于当我通过 API 从 laravel 中的数据库中获取用户数据时出现错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 中使用 HTTP 请求的删除方法通过外部 Api 库删除项目

Laravel:如何通过 API postman 上传图像并将其保存到数据库(phpmyadmin)

如何通过 Laravel 中的 API 从 Shopify 商店获取所有订单

如何将数组数据从 vuejs 传递到 laravel api 控制器

从 laravel 调用 HTTPS 请求到外部 API

Vue + Laravel:如果元组数据之一中的表单数组中的数据,如何从api挂载数据