Laravel 护照不会创建用户

时间:2021-04-08 22:39:17

标签: php laravel

我正在尝试使用 PHP Laravel 通过 HTTP POST request 注册用户。

这是我的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 的索引页面,而不是响应。我检查了数据库,并没有创建用户。

你能帮我解决我遗漏的问题吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试更改路线的方式。例如:

Route::post('users', 'App\Http\Controllers\UsersController@register');

我真的不明白你为什么这样做:public $successStatus = 200;

也许尝试删除这一行。

相关问题