Saturday, April 15, 2017

User Authentication in Lumen

I'm trying to enable basic user authentication (username, password) into my Lumen application.

app.php - the following have been uncommented as directed in https://lumen.laravel.com/docs/5.4/authentication

 $app->withFacades();
 $app->routeMiddleware([
    'auth' => App\Http\Middleware\Authenticate::class,
 ]);
  $app->register(App\Providers\AuthServiceProvider::class);

My route looks like this:

 $app->post('auth/register', ['uses' => 'Auth\AuthController@postRegister']);

Controller looks like this:

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Repositories\UserRepository;
use Illuminate\Http\Request;
use Auth;
use App\User;
 class AuthController extends Controller {

/**
 * Create a new authentication controller instance.
 *
 * @return void
 */
public function __construct()
{

}

public function postRegister(Request $request, UserRepository $userRepository)
{
    $this->validate($request, [
        'name' => 'required|max:255',
        'email' => 'required|email|max:255|unique:users',
        'password' => 'required|confirmed|min:6',
    ]);

    $user = $userRepository->store($request);

    Auth::login($user);

    return ['result' => 'success'];
}
}

I have been getting a combination of weird and wonderful errors, currently I'm getting:

ReflectionException in BoundMethod.php line 155:
Class App\Repositories\UserRepository does not exist

I've done some extensive google searching there doesn't seem to be many documented uses of user auth in Lumen so looking for a pointer as to what I've missed here.



via hylian

Advertisement