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']); } }
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; } });
public function login() { $user = Auth::user(); $token = $user->tokens()->where('client', BrowserDetect::toString())->first(); return $this->respondWithArray(['user' => $user->toArray(), 'token' => $token]); }
public function getMe() { $user = Sentry::getUser(); $token = $user->tokens()->where('client', BrowserDetect::toString())->first(); return Response::json(array('user' => $user->toArray(), 'token' => $token->toArray())); }