我使用 Postman 嘗試通過 laravel 創建一個帶有電子郵件和密碼的新用戶到數據庫但是在成功創建用戶后我沒有收到令牌,而是收到了這些: <!doctype html> <html class="theme-light"> <!--TypeError: Argument 1 passed to Tymon\JWTAuth\JWT::fromUser() must be an instance of Tymon\JWTAuth\Contracts\JWTSubject, instance of App\User given, called in /Users/ahmed/laravelapi/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php on line 261 in file /Users/ahmed/laravelapi/vendor/tymon/jwt-auth/src/JWT.php on line 88#0 /Users/ahmed/laravelapi/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(261): Tymon\JWTAuth\JWT->fromUser(Object(App\User))#1 /Users/ahmed/laravelapi/app/Http/Controllers/APIRegisterController.php(33): Illuminate\Support\Facades\Facade::__callStatic('fromUser', Array)#2 [internal function]: App\Http\Controllers\APIRegisterController->register(Object(Illuminate\Http\Request))#3 /Users/ahmed/laravelapi/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)#4 /Users/ahmed/laravelapi/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction('register', Array)#5 /Users/ahmed/laravelapi/vendor/laravel/framework/src/Illuminate/Routing/Route.php(239): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\APIRegisterController), 'register')這是 APIRegisterController.php 中的代碼:<?phpnamespace App\Http\Controllers;use App\Http\Controllers\Controller;use App\User;use JWTFactory;use JWTAuth;use Validator;use Response;use Illuminate\Http\Request;class APIRegisterController extends Controller{ public function register(Request $request){ $validator = Validator::make($request -> all(),[ 'email' => 'required|string|email|max:255|unique:users', 'name' => 'required', 'password' => 'required' ]);雖然我在 laravel 項目中收到這些錯誤:驗證器:未定義類型 JWTAuth:未定義類型響應:未定義類型誰能幫我成功發帖?
1 回答

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
你必須更新你的User
模型來實現Tymon\JWTAuth\Contracts\JWTSubject
接口:
use Tymon\JWTAuth\Contracts\JWTSubject;
class User implements JWTSubject
{
? ? /**
? ? ?* Get the identifier that will be stored in the subject claim of the JWT.
? ? ?*
? ? ?* @return mixed
? ? ?*/
? ? public function getJWTIdentifier()
? ? {
? ? ? ? return $this->getKey();
? ? }
? ? /**
? ? ?* Return a key value array, containing any custom claims to be added to the JWT.
? ? ?*
? ? ?* @return array
? ? ?*/
? ? public function getJWTCustomClaims()
? ? {
? ? ? ? return [];
? ? }
}
- 1 回答
- 0 關注
- 231 瀏覽
添加回答
舉報
0/150
提交
取消