Buenas a tod@s:
Estoy empezando con Laravel 5.2, y necesito hacerme una API restful, el tema es que no consigo registrarme mediante json con el end point creado, a continuación explico los pasos que he seguido para ver si algo he hecho mal (seguro que si jeje).
1 Primero corro el "php artisan make:auth"
2 En routes.php establezco el prefijo de la API y el middleware que se va a usar:
Route::group(['prefix' => '
api/v1', 'middleware' => 'auth:api'], function () {
Route::auth();
Route::get('/home', 'HomeController@index');
});
3 seguidamente miro mis rutas
Código:
| GET|HEAD | / | | Closure | |
| | GET|HEAD | api/v1/home | | App\Http\Controllers\HomeController@index | auth:api,auth |
| | GET|HEAD | api/v1/login | | App\Http\Controllers\Auth\AuthController@showLoginForm | auth:api,guest |
| | POST | api/v1/login | | App\Http\Controllers\Auth\AuthController@login | auth:api,guest |
| | GET|HEAD | api/v1/logout | | App\Http\Controllers\Auth\AuthController@logout | auth:api |
| | POST | api/v1/password/email | | App\Http\Controllers\Auth\PasswordController@sendResetLinkEmail | auth:api,guest |
| | POST | api/v1/password/reset | | App\Http\Controllers\Auth\PasswordController@reset | auth:api,guest |
| | GET|HEAD | api/v1/password/reset/{token?} | | App\Http\Controllers\Auth\PasswordController@showResetForm | auth:api,guest |
| | GET|HEAD | api/v1/register | | App\Http\Controllers\Auth\AuthController@showRegistrationForm | auth:api,guest |
| | POST | api/v1/register | | App\Http\Controllers\Auth\AuthController@register | auth:api,guest |
+--------+----------+--------------------------------+------+-----------------------------------------------------------------+---------------
Nota: la verdad que eso de "auth:api,guest" me despista un poco, ¿que significa exactamente¿, usa el guard api o guest?.
4 Cambio en auth.php el
default guard a "api".
5 Edito kernel.php
y esto es lo que tengo
Código:
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
'api' => [
'throttle:60,1',
'auth:api',
],
];
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
];
}
Finalmente abro REST Console , plugin de chrome y pruebo con el end point para registrarse, es decir "
api/v1/register ".
Le paso como "RAW Body":
y en content-Type: application/json
He editado para añadir más información:
He probado cambiando en routes.php esto:
Código:
Route::group(['prefix' => 'api', 'middleware' => ['auth:api', 'throttle:60,1']], function () {
Route::auth();
Route::get('/home', 'HomeController@index');
});
Es decir he añadido "throttle:60,1" , entiendo que esto sirve para limitar el número de peticiones posible de los recursos, pero sigo con el mismo problema descrito anteriormente.
Siempre recibo un Status Code: 401 , y el mensaje "
Unauthorized"
Gracias de antemano.