对于默认的全新安装,Auth :: attempt()始终返回false

问题描述 投票:2回答:1

我试了很多来搜索这个问题。我找不到任何解决方案。请帮我理解我做错了什么。

我附上代码:

UserController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;
use Illuminate\Support\Facades\Auth;
class UserController extends Controller
{
    public function signup(Request $request){

        $this->validate($request,[
            'name' => 'required',
            'email' => 'required|unique:users',
            'password' => 'required'
        ]);
        $user = new User([
            'name' => $request->input('name'),
            'email' => $request->input('email'),
            'password' => bcrypt($request->input('password ')),
        ]);
        $user->save();
        return response()->json([
            'state' => 'success',
            'message' => 'User created.'
        ],201);
    }

    public function signin(Request $request){
        $credentials = $request->only('email', 'password');
        dd(Auth::attempt($credentials));
        if (!$token = $this->guard()->attempt($credentials)) {
            return response()->json(['error' => 'Unauthorized'], 401);
        }

        return $this->respondWithToken($token);
    }
}

我在api.php中有路由

Route::prefix('user')->group(function () {
    Route::post('signup', 'UserController@signup');
    Route::post('signin', 'UserController@signin');
});

我有I have this in database

我先发送下面的json注册,然后当我发送信号时,我失败了。

{
    "name":"ironman",
    "email":"[email protected]",
    "password":"avengers"
}

这是laravel 5.4的全新安装(与5.5相同),使用详细信息用户迁移和模型随附。

当我试图自己诊断问题时,我发现密码_very在Auth包中一直返回false。

我正在使用默认密码字段,在创建用户时对其进行哈希处理,因为其他类似的问我正在使用php artisan serv。我正在使用邮递员发送此请求。

请帮忙,

php laravel laravel-5
1个回答
2
投票

这是从请求中拉出null

$request->input('password '); // notice the space

'password' => bcrypt($request->input('password ')),

您可能不打算在输入名称的末尾添加空格:

$request->input('password'); // no space

'password' => bcrypt($request->input('password')),
© www.soinside.com 2019 - 2024. All rights reserved.