Laravel.io
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

use Illuminate\Support\Str;
use Sentry;
use App\User;

use Dingo\Api\Exception\Handler;


class UserController extends Controller
{
    protected $user;

    public function __construct(Request $request)
    {
        $payload = $request->header('X-Auth-Token');
        $userModel = Sentry::getUserProvider()->createModel();
        $user =  $userModel->where('api_token',$payload)->first();

        if($payload && $user) {
            $this->user = $user;
        }

    }

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index()
    { 
        if(!$this->user)
            return $this->response->errorUnauthorized();

        $users = User::all();

        if(!$users) {
            return $this->response->errorNotFound();
        }

        return $this->response->array($users->present()->toArray());
        // return $this->response->array($users->toArray());

    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        Sentry::register(array(
            'email'    => $request->get('email'),
            'password' => $request->get('password'),
            'activated' => true,
        ));

        return $this->response->created();
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return Response
     */
    public function show($id)
    {
        $user = User::find($id);

        if(!$user) {
            return $this->response->errorNotFound();
        }

        return $this->response->array($user->toArray());
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  Request  $request
     * @param  int  $id
     * @return Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return Response
     */
    public function destroy($id)
    {
        //
    }

    /**
     * Auth in site
     *
     * @param  Request  $request
     * @return Return access code (200) and token
     */
    public function login(Request $request){
        try
            {
                $user = Sentry::authenticate($request->all(), false);
                $token = hash('sha256',Str::random(10),false);
                $user->api_token = $token;
                $user->save();

                return $this->response->array(array_except($user->toArray(), ['permissions', 'activated', 'activated_at']));
            }
            catch(Exception $e)
            {
                return $this->response->errorUnauthorized();
            }
    }
}

Please note that all pasted data is publicly available.