" MethodNotAllowedHttpException"使用laravel 5.4为我的andorid app建立一个api

时间:2017-07-06 16:06:40

标签: php android api laravel-5.4

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;如果有令牌或没有令牌,方法正在工作和检查。如果有人帮助过我,我会感激不尽*

1 个答案:

答案 0 :(得分:0)

那么,哪一种方法会给你错误?

因为你确实指定“getAuthUser”工作正常;而且由于你遇到的那种错误,我会假设你在说“注册”和“登录”。

无论如何,当您尝试访问具有不正确请求类型的路由时,会发生这种错误。如果您尝试访问/注册和/ login

,则必须使用“POST”请求,而不是“GET”