public function run()
 {
     $faker = Faker\Factory::create();
     $users = User::all();
     foreach ($users as $user) {
         UserToken::create(['user_id' => $user->id, 'user_ip' => $faker->ipv4, 'device_token' => $faker->password, 'device_name' => $faker->colorName, 'token' => str_repeat($user->id, 6), 'last_usage' => \Carbon\Carbon::now()]);
     }
 }
 protected function performChecks()
 {
     $token = $this->request->getHeader(Config::get('app.authHeader'));
     if (empty($token)) {
         throw new UnAuthorizedException('Missing Header');
     }
     $this->userId = UserToken::getValidUserId($token, $this->request->getAttribute('ip_address'));
     if (empty($this->userId)) {
         // Log attempt then remove token?
         throw new UnAuthorizedException('Unauthorized');
     }
 }
Ejemplo n.º 3
0
 /**
  * Verifica el usuario y contraseña dados. Si son correctos genera un access token y un refresh token.
  * <p>
  * Ejemplo: 
  * </p>
  * </p>
  * <p>JSON DE ENTRAA</p>
  * <p>
  * {
  *"user": "******",
  *"password": "******",
  *"imei": "XCVSDF2343"
  *}
  * </p>
  * <p>JSON DE SALIDA</p>
  * <p>
  * {
  * "error": false,
  * "msg": "OK",
  * "access_token": "OrrotWVZJXyGx42RnnBkdtXrwrk2gTrtVUuBr5dJiwPJtN3X",
  * "refresh_token": "q16d7NHS2b3M8OTgTKqbgBoRKsZahUWqk3tuTujHqjETS6dq",
  * "valid_until": "2015-07-08 15:00:00"
  * }
  * </p>
  *
  * @param Request $request
  *
  * @return Array
  *
  */
 public function login(Request $request)
 {
     $resp = array();
     $status = 200;
     $resp['error'] = true;
     $resp['msg'] = 'Ocurrió un error';
     $resp['access_token'] = null;
     $resp['refresh_token'] = null;
     $in = json_decode($request->getContent());
     $imei = $request->header('X-imei');
     if (property_exists($in, 'user') && property_exists($in, 'password')) {
         $user = User::where('login', '=', $in->user)->where('password', '=', $in->password)->first();
         if ($user) {
             $access_token = $this->generateToken();
             $refresh_token = $this->generateToken();
             $userToken = new UserToken();
             $userToken->access_token = $access_token;
             $userToken->refresh_token = $refresh_token;
             $userToken->id_user = $user->id;
             $userToken->imei = $imei;
             $userToken->save();
             $hoy = Carbon::now();
             $hoy->addDay();
             $resp['error'] = false;
             $resp['msg'] = 'OK';
             $resp['access_token'] = $access_token;
             $resp['refresh_token'] = $refresh_token;
             $resp['valid_until'] = $hoy->toDateTimeString();
         } else {
             $status = 401;
             $resp['msg'] = 'Login y/o password inválidos';
         }
     } else {
         $resp['msg'] = 'El login y/o password son obligatorios';
     }
     return new Response($resp, $status);
 }
Ejemplo n.º 4
0
 /**
 * Almacena un posicion con la informacion reportada en el json de entrada
 *
 * <p>Ejemplo:</p>
 * <p>JSON DE ENTRADA:</p>
 * <p>
    {
      "latitude": 4.712,
      "longitude": -74.454,
      "updatetime": "2015-07-07 16:35:00",
      "os": "android",
      "imei": "XCVSDF2343"
    }
 * </p>
 * <p>JSON DE SALIDA:</p>
 * <p>
    {
      "error": false,
      "msg": "OK",
      "data": {
        "id_position": 11
      }
    }
 * </p>
 *
 * @param Request $request
 *
 * @return Json
 */
 public function store(Request $request)
 {
     $status = 200;
     $resp = array();
     $resp['error'] = true;
     $resp['msg'] = 'Ocurrió un error';
     $resp['data'] = null;
     //$in = json_decode($request->input('values'), false);
     $in = json_decode($request->getContent());
     $access_token = $request->header('X-Session-Token');
     $imei = $request->header('X-imei');
     $os = $request->header('X-OS');
     $resp['msg'] = 'Faltan campos que son obligatorios';
     if (property_exists($in, 'latitude') && property_exists($in, 'longitude') && property_exists($in, 'updatetime') && !is_null($imei) && !is_null($os) && !is_null($access_token)) {
         $resp['msg'] = 'Acess token inválido';
         $status = 401;
         $user = UserToken::where('access_token', '=', $access_token)->where('is_valid', '=', true)->where('ts_valid_until', '>=', 'NOW()')->first();
         if ($user) {
             $position = new Position();
             $position->latitude = $in->latitude;
             $position->longitude = $in->longitude;
             $position->id_user = $user->id_user;
             $position->updatetime = $in->updatetime;
             $position->save();
             $status = 201;
             $resp['error'] = false;
             $resp['msg'] = 'OK';
             $resp['data'] = array();
             $resp['data']['id_position'] = $position->id_position;
         }
     }
     return new Response($resp, $status);
 }