AuthController.php代码
<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use JWTAuth;
use App\User;
use JWTAuthException;
class AuthController extends Controller
{
private $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function register(Request $request)
{
$this->validate($request, [
'email'=> 'required|email|unique:users',
'first_name'=> 'required|max:120',
'password' => 'required|min:4'
]);
$user = $this->user->create([
'name' => $request->get('name'),
'email' => $request->get('email'),
'password' => bcrypt($request->get('password'))
]);
$user->save();
if(!$user){
return response()->json(['status'=>false,'message'=>'User not created']);
}
else {
return response()->json(['status'=>true,'message'=>'User created successfully','data'=>$user]);
}
}
public function login(Request $request)
{
$this->validate($request, [
'email'=> 'required',
'password'=> 'required'
]);
$credentials = $request->only('email','password');
$token = null;
try {
$token = $this->jwtauth->attepmt($credentials);
if(!$token)
{
return response()->json(['invalid email or password'], 422);
}
}
catch (JWTAuthException $ex)
{
return response()->json(['failed to create token'], 500);
}
return response()->json(compact('token'));
}
public function getAuthUser(Request $request){
$user = JWTAuth::toUser($request->token);
return response()->json(['result' => $user]);
}
}
api.php路线
Route::post('register', 'api\AuthController@register');
Route::post('login', 'api\AuthController@login');
Route::group(['middleware' => 'jwt.auth'], function () {
Route::get('user', 'api\AuthController@getAuthUser');
});
*我确信我的代码有一些错误,因为&#34; getAuthUser&#34;如果有令牌或没有令牌,方法正在工作和检查。如果有人帮助过我,我会感激不尽*
答案 0 :(得分:0)
那么,哪一种方法会给你错误?
因为你确实指定“getAuthUser”工作正常;而且由于你遇到的那种错误,我会假设你在说“注册”和“登录”。
无论如何,当您尝试访问具有不正确请求类型的路由时,会发生这种错误。如果您尝试访问/注册和/ login
,则必须使用“POST”请求,而不是“GET”