Auth :: attempt()始终为默认的全新安装

时间:2017-12-17 00:31:36

标签: php laravel laravel-5

我尝试了很多搜索问题。我无法找到任何解决方案。请帮助我理解我做错了什么。

我附上了代码:

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":"ironman@yahoo.com",
    "password":"avengers"
}

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

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

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

请帮忙,

1 个答案:

答案 0 :(得分:2)

这是从请求中提取null

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

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

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

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

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