【发布时间】:2021-04-08 22:39:17
【问题描述】:
我正在尝试通过HTTP POST request 使用 PHP Laravel 注册用户。
这是我的AuthController:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use App\User;
use Illuminate\Support\Facades\Validator;
class AuthController extends Controller
{
public $successStatus = 200;
public function register(Request $request)
{
$request->validate([
'name' => 'required|string',
'email' => 'required|string|email|unique:users',
'password' => 'required|string|confirmed'
]);
$user = new User([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password)
]);
$user->save();
$message['success'] = 'Created Account Successfully';
return response()->json([
'message' => $message
], 201);
}
public function login(Request $request){
$request->validate([
'email' => 'required|string|email',
'password' => 'required|string'
]);
$credentials = request(['email', 'password']);
if(Auth::attempt($credentials)){
$user = Auth::user();
$message['token'] = $user->createToken('MyApp')->accessToken;
$message['token_type'] = 'Bearer';
$message['experies_at'] = Carbon::parse(Carbon::now()->addWeeks(1))->toDateTimeString();
$message['success'] = 'Logged in successfully';
return response()->json(['message' => $message], $this->successStatus);
}
else{
return response()->json(['error'=>'Unauthorised'], 401);
}
}
}
还有我的routes/api.php:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AuthController;
Route::post('/users', [AuthController::class, 'register']);
当我使用名称、电子邮件和护照参数向http://localhost:8080/api/users/ 发送 POST 请求时,它返回 200 响应而不是 201。它显示的是 Laravel 的索引页面,而不是响应。我检查了数据库,没有创建用户。
你能帮我解决我所缺少的吗?
【问题讨论】: