Я пытаюсь реализовать функцию регистрации в моем контроллере, но когда я выполняю действие tryRegister, браузер записывает 500 (Внутренняя ошибка сервера). Поэтому я удалил все из функции регистра и просто попытался вернуть простую строку в качестве ответа. И странным было то, что он все еще генерирует эту ошибку. Поэтому, поскольку вход в систему уже работал, я попытался сделать ответ на сообщение в функции входа в систему и вызвать его с помощью действия tryLogin, но сумасшедшая вещь заключается в том, что функция входа в систему отвечает просто отлично и регистрирует «вход в систему»? Что я делаю неправильно? Это как-то связано с параметром запроса? Потому что это единственное различие между этими двумя функциями.
Также я новичок в серверной разработке, и я действительно пытаюсь понять это.
Действия Vuex
import axios from "axios";
export default {
tryRegister(context, credentials) {
context.commit("login");
return new Promise((resolve, reject) => {
axios
.post("/api/auth/register", credentials)
.then(response => {
console.log(response.data);
context.commit("loginSucces", response.data);
resolve(response.data);
})
.catch(error => {
console.log(error.response);
reject(error);
});
});
},
tryLogin(context, credentials) {
context.commit("login");
return new Promise((resolve, reject) => {
axios
.post("/api/auth/login", credentials)
.then(response => {
console.log(response.data);
context.commit("loginSucces", response.data);
resolve(response.data);
})
.catch(error => {
context.commit("loginFailed", error);
reject(error);
});
});
},
tryLogout(context) {
context.commit("logout");
}
};
Маршруты
<?php
Route::group([
'prefix' => 'auth'
], function () {
Route::post('register', 'AuthController@register');
Route::post('login', 'AuthController@login');
Route::post('logout', 'AuthController@logout');
Route::post('refresh', 'AuthController@refresh');
Route::post('me', 'AuthController@me');
});
Контроллер авторизации
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Log;
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([
// 'email' => $request->email,
// 'password' => $request->password,
// ]);
// $token = auth('api')->login($user);
// return $this->respondWithToken($token);
return "register";
}
/**
* 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);
return "login";
}
/**
* 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');
}
}