Ejemplo n.º 1
0
 public function postRegistro()
 {
     $input = Input::all();
     $reglas = array('nombre' => 'required', 'apellido' => 'required', 'celular' => 'required|numeric|unique:users', 'cedula' => 'required|numeric|unique:users', 'email' => 'required|email|unique:users', 'pin' => 'required|numeric|digits_between:0,4', 'password' => 'required|numbers|case_diff|letters|min:6|confirmed', 'password_confirmation' => 'required|min:6');
     $validation = Validator::make($input, $reglas);
     if ($validation->fails()) {
         return Response::json(['success' => false, 'errors' => $validation->errors()->toArray()]);
     }
     try {
         // se guarda los datos del usuario
         $user = Sentry::register(array('first_name' => Input::get('nombre'), 'last_name' => Input::get('apellido'), 'email' => Input::get('email'), 'habilitar_pin' => 1, 'celular' => Input::get('celular'), 'cedula' => Input::get('cedula'), 'password' => Input::get('password'), 'pin' => Input::get('pin'), 'porcentaje' => 0.05, 'activated' => true));
         $userId = $user->getId();
         $token = new Token();
         $token->user_id = $userId;
         $token->api_token = hash('sha256', Str::random(10), false);
         $token->client = BrowserDetect::toString();
         $token->expires_on = Carbon::now()->addMonth()->toDateTimeString();
         $token->save();
         // Se autentica de una
         $user_login = Sentry::findUserById($userId);
         Sentry::login($user_login, false);
         return Response::json(['success' => true, 'user' => $user_login, 'token' => $token->api_token]);
     } catch (Cartalyst\Sentry\Users\LoginRequiredException $e) {
         $error = array('usuario' => 'Email es requerido');
     } catch (Cartalyst\Sentry\Users\PasswordRequiredException $e) {
         $error = array('usuario' => 'Password es requerido');
     } catch (Cartalyst\Sentry\Users\UserExistsException $e) {
         $error = array('usuario' => 'El Email ya está registrado');
     }
     return Response::json(['success' => false, 'errors' => $error]);
 }
 /**
  * signin.post
  *
  */
 public function postSignIn()
 {
     try {
         $credenciales = array('email' => Input::get('email'), 'password' => Input::get('password'));
         $sentry = Sentry::authenticate($credenciales, false);
         $user = $this->user->find($sentry->id);
         if (!$user->tokens()->where('client', BrowserDetect::toString())->first()) {
             $token = [];
             $token['api_token'] = hash('sha256', Str::random(10), false);
             $token['client'] = BrowserDetect::toString();
             $token['expires_on'] = 0;
             $user->tokens()->save(new Token($token));
         }
         if (Sentry::check()) {
             if ($sentry->hasAnyAccess(['admin'])) {
                 return Redirect::route('admin.dashboard')->with(['message' => $sentry->first_name . ' ' . $sentry->last_name, 'class' => 'info']);
             } else {
                 if ($sentry->hasAnyAccess(['users'])) {
                     return Redirect::route('users.dashboard')->with(['message' => $sentry->first_name . ' ' . $sentry->last_name, 'class' => 'info']);
                 }
             }
         } else {
             return Redirect::route('home')->withInput();
         }
     } catch (Cartalyst\Sentry\Users\LoginRequiredException $e) {
         return Redirect::route('signin')->with(['message' => 'Se requiere campo E-Mail', 'class' => 'warning']);
     } catch (Cartalyst\Sentry\Users\PasswordRequiredException $e) {
         return Redirect::route('signin')->with(['message' => 'Se requiere campo Contraseña.', 'class' => 'warning']);
     } catch (Cartalyst\Sentry\Users\WrongPasswordException $e) {
         return Redirect::route('signin')->with(['message' => 'Contraseña incorrecta, vuelva a intentarlo.', 'class' => 'warning']);
     } catch (Cartalyst\Sentry\Users\UserNotFoundException $e) {
         return Redirect::route('signin')->with(['message' => 'El usuario no se ha encontrado.', 'class' => 'danger']);
     } catch (Cartalyst\Sentry\Users\UserNotActivatedException $e) {
         return Redirect::route('signin')->with(['message' => 'El usuario no está activado.', 'class' => 'warning']);
     } catch (Cartalyst\Sentry\Throttling\UserSuspendedException $e) {
         return Redirect::route('signin')->with(['message' => 'Usuario está suspendido.', 'class' => 'info']);
     } catch (Cartalyst\Sentry\Throttling\UserBannedException $e) {
         return Redirect::route('signin')->with(['message' => 'Usuario está prohibido.', 'class' => 'info']);
     }
 }
Ejemplo n.º 3
0
    if ($email = $request->getUser() && ($password = $request->getPassword())) {
        $credentials = array('email' => $request->getUser(), 'password' => $request->getPassword());
        $auth = App::make('auth');
        if (Auth::once($credentials)) {
            $authenticated = true;
            if (!Auth::user()->tokens()->where('client', BrowserDetect::toString())->first()) {
                $token = [];
                $token['api_token'] = hash('sha256', Str::random(10), false);
                $token['client'] = BrowserDetect::toString();
                $token['expires_on'] = Carbon::now()->addMonth()->toDateTimeString();
                Auth::user()->tokens()->save(new Token($token));
            }
        }
    }
    if ($payload = $request->header('X-Auth-Token')) {
        $userModel = Sentry::getUserProvider()->createModel();
        $token = Token::valid()->where('api_token', $payload)->where('client', BrowserDetect::toString())->first();
        if ($token) {
            Sentry::login($token->user);
            $authenticated = true;
        }
    }
    if ($authenticated && !Sentry::check()) {
        Sentry::login(Auth::user());
    }
    if (!$authenticated) {
        $response = Response::json(['error' => true, 'message' => 'Not authenticated', 'code' => 401], 401);
        $response->header('Content-Type', 'application/json');
        return $response;
    }
});
Ejemplo n.º 4
0
 public function login()
 {
     $user = Auth::user();
     $token = $user->tokens()->where('client', BrowserDetect::toString())->first();
     return $this->respondWithArray(['user' => $user->toArray(), 'token' => $token]);
 }
Ejemplo n.º 5
0
 public function getMe()
 {
     $user = Sentry::getUser();
     $token = $user->tokens()->where('client', BrowserDetect::toString())->first();
     return Response::json(array('user' => $user->toArray(), 'token' => $token->toArray()));
 }