Я делаю SPA с Laravel, и у меня есть сеялка для моих пользователей. Сеялка, похоже, хорошо заправляет мою базу данных. Для каждого пользователя пароль тот же 12345678, который я установил с помощью Hash: make. Но когда я пытаюсь войти в систему, он не работает, пока пользователи четко находятся в базе данных (не могу проверить пароль, поскольку он хешируется). Поэтому я попытался зарегистрировать некоторых пользователей, и странно то, что зарегистрированные пользователи могут войти в систему просто отлично. У меня сорвано с ума, я смотрю на это уже несколько дней, так что пришло время обратиться за помощью.
Я проверил полезную нагрузку для запроса, и он точно соответствует входным данным. Я почти уверен, что это как-то связано с сеялкой, но я не могу понять это. Кроме того, раньше он отлично работал с посеянными данными, но я больше не принадлежу старым сеялкам.
База данных сеялок
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
// Seed the users
$this->call(UserSeeder::class);
//seed the campaigns
$this->call(CampaignSeeder::class);
//seed the campaign users
$this->call(UserCampaignSeeder::class);
}
}
ПользовательСеялка
use App\User;
use Illuminate\Database\Seeder;
class UserSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$user = new User();
$user->name = "Test1";
$user->email = "test1@gmail.com";
$user->password = Hash::make("12345678");
$user->save();
$user = new User();
$user->name = "Test2";
$user->email = "test2@gmail.com";
$user->password = Hash::make("12345678");
$user->save();
$user = new User();
$user->name = "Test3";
$user->email = "test3@gmail.com";
$user->password = Hash::make("12345678");
$user->save();
$user = new User();
$user->name = "Test4";
$user->email = "test4@gmail.com";
$user->password = Hash::make("12345678");
$user->save();
$user = new User();
$user->name = "Test5";
$user->email = "test5@gmail.com";
$user->password = Hash::make("12345678");
$user->save();
$user = new User();
$user->name = "Test6";
$user->email = "test6@gmail.com";
$user->password = Hash::make("12345678");
$user->save();
$user = new User();
$user->name = "Test7";
$user->email = "test7@gmail.com";
$user->password = Hash::make("12345678");
$user->save();
$user = new User();
$user->name = "Test8";
$user->email = "test8@gmail.com";
$user->password = Hash::make("12345678");
$user->save();
}
}
Auth Controller
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Log;
use Illuminate\Http\Request;
use App\User;
class AuthController extends Controller
{
/**
* Create a new AuthController instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth:api', ['except' => ['login', 'register']]);
}
public function register(Request $request)
{
$user = User::create([
'name' => $request->username,
'email' => $request->email,
'password' => $request->password,
]);
$token = auth('api')->login($user);
return $this->respondWithToken($token);
}
/**
* Get a JWT via given credentials.
*
* @return \Illuminate\Http\JsonResponse
*/
public function login()
{
$credentials = request(['email', 'password']);
if (!$token = auth('api')->attempt($credentials)) {
return response()->json(['error' => 'Unauthorized'], 401);
}
return $this->respondWithToken($token);
}
/**
* Get the authenticated User.
*
* @return \Illuminate\Http\JsonResponse
*/
public function me()
{
return response()->json(auth('api')->user());
}
/**
* Log the user out (Invalidate the token).
*
* @return \Illuminate\Http\JsonResponse
*/
public function logout()
{
auth('api')->logout();
return response()->json(['message' => 'Successfully logged out']);
}
/**
* Refresh a token.
*
* @return \Illuminate\Http\JsonResponse
*/
public function refresh()
{
return $this->respondWithToken(auth('api')->refresh());
}
/**
* Get the token array structure.
*
* @param string $token
*
* @return \Illuminate\Http\JsonResponse
*/
protected function respondWithToken($token)
{
return response()->json([
'access_token' => $token,
'user' => $this->guard()->user(),
'token_type' => 'bearer',
'expires_in' => auth('api')->factory()->getTTL() * 60
]);
}
public function guard()
{
return Auth::Guard('api');
}
}