当前位置: 首页>>代码示例>>PHP>>正文


PHP Slim::halt方法代码示例

本文整理汇总了PHP中Slim\Slim::halt方法的典型用法代码示例。如果您正苦于以下问题:PHP Slim::halt方法的具体用法?PHP Slim::halt怎么用?PHP Slim::halt使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Slim\Slim的用法示例。


在下文中一共展示了Slim::halt方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: authentication

 /**
  * Returns a JSON error output
  *
  * @param Instance of Slim
  * @return string
  */
 public static function authentication(Slim $app)
 {
     $app->response->headers->set('Content-Type', 'application/json');
     $token = $app->request->headers->get('Authorization');
     Config::loadenv();
     $key = getenv('jwt_key');
     $algorithm = array('HS256');
     if (!$token) {
         $app->halt(401, json_encode(['status' => 401, 'message' => 'You need a token to perform this action!']));
     }
     try {
         $decode_jwt = JWT::decode($token, $key, $algorithm);
     } catch (Exception $e) {
         $app->halt(400, json_encode(['status' => 400, 'message' => 'The token supplied is invalid!.']));
     }
     return $decode_jwt->user;
 }
开发者ID:andela-sakande,项目名称:9jamoji,代码行数:23,代码来源:Authorize.php

示例2: __construct

 /**
  * Constructor
  * 
  * @param \Slim\Slim $app Slim app reference
  */
 public function __construct(\Slim\Slim $app)
 {
     $this->app = $app;
     $this->app->notFound(function () use($app) {
         $data = array('error' => array('message' => 'Invalid route'));
         $app->contentType('application/json');
         $app->halt(400, json_encode($data));
     });
 }
开发者ID:katymdc,项目名称:thermal-api,代码行数:14,代码来源:API_Base.php

示例3: addRouteDefinitions

 /**
  * This methods will be called at application startup
  * @param $appInstance
  * @return void
  * @throws \Exception
  */
 public static function addRouteDefinitions(Slim $appInstance)
 {
     $appInstance->map('/protected-storage/:inst/:id/:accessMethod/:path+', function ($inst, $id, $accessMethod, $path) use($appInstance) {
         if (!in_array($accessMethod, cProtectedStorage::$allowedAccessMethods, true)) {
             $appInstance->halt(400, 'Invalid request');
         }
         $fileName = array_pop($path);
         $rel = '';
         foreach ($path as $value) {
             $rel .= $value . '/';
         }
         $rel .= $fileName;
         $user = null;
         if ($accessMethod === 'private') {
             try {
                 $user = new MembersAuth();
                 $user->isUserLoggedIn();
             } catch (LoginExceptions $e) {
                 $appInstance->halt(401, 'Unauthorized');
             }
         }
         $fullPath = $inst . '/' . $id . '/' . $accessMethod . '/' . $rel;
         $controller = new cProtectedStorage($inst, $id, $accessMethod, $rel);
         if ($controller->isCorrectPath($fullPath)) {
             $appInstance->etag(md5($fullPath));
             $appInstance->expires('+1 week');
             $headers = $controller->outputFile();
             if (array_key_exists('download', $_REQUEST)) {
                 $headers['Content-Type'] = 'application/octet-stream';
             }
             foreach ($headers as $key => $value) {
                 $appInstance->response->headers->set($key, $value);
             }
         } else {
             $appInstance->notFound();
         }
     })->via('GET', 'POST');
 }
开发者ID:indiwine,项目名称:EMA-engine,代码行数:44,代码来源:ProtectedStorageRouting.php

示例4: logout

 /**
  * Disable issued token to a user
  *
  * @param int $user_id ID of a user
  * @param Slim $app
  * @return string
  */
 public static function logout($user_id, Slim $app)
 {
     $app->response->headers->set('Content-Type', 'application/json');
     try {
         $user = User::find($user_id);
     } catch (RecordNotFoundException $e) {
         $app->halt(404, json_encode(['message' => 'Not Registered']));
     }
     if (Setup::unsetToken($user) === 1) {
         return json_encode(['message' => 'Logged out']);
     } else {
         $app->halt3(503);
     }
 }
开发者ID:andela-kerinoso,项目名称:emoji-RESTful-api,代码行数:21,代码来源:Authenticate.php

示例5: grantAccess

 /**
  * Verify a resource owner
  *
  * @param $id
  * @param Slim $app
  * @return bool
  */
 public static function grantAccess($id, Slim $app)
 {
     try {
         $emoji = Emoji::find($id);
     } catch (RecordNotFoundException $e) {
         $app->response->headers->set('Content-Type', 'application/json');
         $app->halt(404, json_encode(['message' => 'Not Found']));
     }
     if ($emoji->getRecord()['dbData']['user_id'] === Setup::getUserId($app)) {
         return true;
     } else {
         $app->response->headers->set('Content-Type', 'application/json');
         $app->halt(401, json_encode(['message' => 'Not yours']));
     }
 }
开发者ID:andela-kerinoso,项目名称:emoji-RESTful-api,代码行数:22,代码来源:Authorize.php

示例6: getUserWithToken

 /**
  * Get user instance with supplied token
  *
  * @param Slim $app
  * @return object|string
  */
 public static function getUserWithToken(Slim $app)
 {
     $token = $app->request->headers('Authorization');
     if (isset($token)) {
         try {
             $user = User::where('token', $token);
         } catch (RecordNotFoundException $e) {
             $app->response->headers->set('Content-Type', 'application/json');
             $app->halt(401, json_encode(['message' => 'Invalid Token']));
         }
         return $user;
     } else {
         $app->response->headers->set('Content-Type', 'application/json');
         $app->halt(401, json_encode(['message' => 'Empty Token']));
     }
 }
开发者ID:andela-kerinoso,项目名称:emoji-RESTful-api,代码行数:22,代码来源:Setup.php

示例7: newInstance

 public static function newInstance(\Slim\Slim $app)
 {
     try {
         $config = $app->config('connection');
         $instance = new \PDO("mysql:host={$config['mysql']['host']};dbname={$config['mysql']['database']}", $config['mysql']['user'], $config['mysql']['password'], $config['mysql']['options']);
         if (!empty($config['mysql']['execute'])) {
             foreach ($config['mysql']['execute'] as $sql) {
                 $stmt = $instance->prepare($sql);
                 $stmt->execute();
             }
         }
     } catch (\PDOException $p) {
         //$this->slim->log->error('BAD THINGS');
         return $app->halt(500, $app->view()->fetch('error/500.php'));
     }
     return $instance;
 }
开发者ID:joodee,项目名称:RESTfulSlim,代码行数:17,代码来源:PDOMySQLConnection.php

示例8: login

 /**
  * Login method which returns token
  *
  * @param Slim $app
  * @return string
  */
 public static function login(Slim $app)
 {
     $app->response->headers->set('Content-Type', 'application/json');
     $username = $app->request->params(self::format('username'));
     $password = $app->request->params(self::format('password'));
     if (!isset($username, $password)) {
         $app->halt(401, json_encode(["status" => 401, "message" => "Username & Password Required!"]));
     }
     $authUser = User::where('username', $username)->first();
     if (empty($authUser)) {
         return Errors::error401('This User is Not Found!');
     } elseif ($authUser['password'] !== sha1($password)) {
         return Errors::error401('Invalid Credentials');
     } else {
         return self::Tokenize($app);
     }
 }
开发者ID:andela-sakande,项目名称:9jamoji,代码行数:23,代码来源:UserController.php

示例9: isValidLogin

\Slim\Route::setDefaultConditions(array('id' => '[0-9]{1,}'));
// Autentification
// POST sends username and password na route /login
// route /login catches POST request and sets setEncryptedCookie('username', $username, '1 day');
// When you call get(/article .... $checkLoggedOn($app) is called
// $checkLoggedOn = function ($app) validates and if user password is valid will return true
// and rest of get(/article route will be triggered
function isValidLogin($username, $password)
{
    //    return true;
    return $username == 'Greg' && $password == 'letMeIn';
}
$authenticateUser = function ($app) {
    return function () use($app) {
        if (!isValidLogin($app->getCookie('username'), $app->getCookie('password'))) {
            $app->halt(401);
            // Unauthorized access
        }
    };
};
$app->post('/login', function () use($app) {
    try {
        // get user and pass from post if from form as dataType=html
        //$username = $app->request->post('username');
        //$password = $app->request->post('password');
        // get user and pass from post - get and decode JSON request body
        $body = $app->request()->getBody();
        $input = json_decode($body);
        $username = (string) $input->username;
        $password = (string) $input->password;
        // this is how you can check what has been passed. Look into responds from ajaxPost.php
开发者ID:gsokolowski,项目名称:Php-REST-Slim-RedBean-authentication,代码行数:31,代码来源:index.php

示例10: logout

 /**
  * logout Log user out and destroy token
  *
  * @param  $app
  *
  * @return json
  */
 public function logout(Slim $app)
 {
     $app->response->headers->set('Content-Type', 'application/json');
     $tokenData = $app->request->headers->get('Authorization');
     try {
         if (!isset($tokenData)) {
             throw new ProvideTokenException();
         }
         $checkUser = $this->user->where(['username' => $tokenData->user])->toJson();
         if (!empty($checkUser)) {
             $this->auth->authorizationEncode(NULL);
         }
         #
         $app->halt(200, json_encode(['message' => 'Logged out Successfully']));
     } catch (DataNotFoundException $e) {
         $app->halt(404, json_encode(['message' => 'Not Found']));
     } catch (InvalidTokenException $e) {
         $app->halt(405, json_encode(['Message' => 'Invalid Token']));
     } catch (ProvideTokenException $e) {
         $app->halt(406, json_encode(['Message' => 'Enter a valid Token']));
     }
 }
开发者ID:andela-iadeniyi,项目名称:emojinaija,代码行数:29,代码来源:UserController.php

示例11: Slim

<?php

require_once 'vendor/autoload.php';
use Slim\Slim;
use Dara\Origins\User;
use Dara\Origins\Emoji;
date_default_timezone_set('Africa/Lagos');
$app = new Slim();
$authCheck = function ($route) use($app) {
    $user = new User();
    $userToken = $app->request->headers['token'];
    $userInfo = $user->where('users', 'token', $userToken);
    $storedToken = $userInfo['token'];
    $now = date('Y-m-d H:i:s', time());
    if (!$storedToken) {
        $app->halt(401, json_encode(["Message" => "You are not allowed to access this route!"]));
    }
    if ($now > $userInfo['token_expiry']) {
        $app->halt(401, json_encode(["Message" => "Expired token. Please login again"]));
    }
};
$ownerCheck = function ($route) use($app) {
    $userToken = $app->request->headers['token'];
    $emojiId = $route->getParams()['id'];
    $user = new User();
    $check = $user->checkEmojiOwnership($userToken, $emojiId);
    if (!$check) {
        $app->halt(301, json_encode(["Message" => "You are not allowed to modify this emoji!"]));
    }
};
$emojiExists = function ($route) use($app) {
开发者ID:andela-doladosu,项目名称:ngemoji,代码行数:31,代码来源:index.php

示例12: function

    $app->render('html/admin.html');
});
$app->get('/admin/allowances/list', function () use($app) {
    $users = getUsers($app->db, 'all');
    $periods = $app->periods->getAllPeriods();
    $app->render('html/allowances.html', array('users' => $users, 'periods' => $periods[1]));
});
$app->get('/admin/allowances/list/json', function () use($app) {
    $search = isset($_GET['search']) ? $_GET['search'] : '';
    $sort = isset($_GET['sort']) ? $_GET['sort'] : 'id';
    $order = isset($_GET['order']) ? $_GET['order'] : 'ASC';
    $limit = isset($_GET['limit']) ? $_GET['limit'] : '10';
    $offset = isset($_GET['offset']) ? $_GET['offset'] : '0';
    $allowances = $app->allowances->getAllowances($search, $sort, $order, $limit, $offset);
    if ($allowances[0] === false) {
        $app->halt(500, $allowances[1]);
    }
    $app->contentType('application/json');
    $app->render('json/allowances.json', array('allowances' => $allowances[1]));
})->name('jsonAllowancesList');
$app->post('/admin/allowances/delete', function () use($app) {
    $error = false;
    if (is_array($app->request->post('data'))) {
        $error = $app->allowances->deleteAllowances($app->request->post('data'));
    } else {
        $error = $app->allowances->deleteAllowance($app->request->post('data'));
    }
    if ($error === false) {
        $app->halt(200);
    } else {
        $app->halt(500, $error);
开发者ID:greboid,项目名称:Holidays,代码行数:31,代码来源:index.php

示例13: Slim

$config = (require_once __DIR__ . '/../config.php');
use FA\DI\Container;
use Slim\Slim;
// Prepare app
$app = new Slim($config['slim']);
$container = new Container($app, $config);
$app->hook('slim.before.router', function () use($app, $container) {
    $users = count($container['userDao']->findAll());
    $pathInfo = $app->request->getPathInfo();
    if ($users < 1 && $pathInfo != '/setup') {
        return $app->redirect('/setup');
    }
});
$app->get('/setup', function () use($app, $container) {
    if (count($container['userDao']->findAll()) > 0) {
        $app->halt(403);
    }
    $app->render('setup.html');
});
$app->post('/setup', function () use($app, $container) {
    if (count($container['userDao']->findAll()) > 0) {
        $app->halt(403, 'NO MOAR USERS ALLOWED');
    }
    $params = $app->request()->post();
    $email = filter_var($params['email'], FILTER_SANITIZE_EMAIL);
    $email = filter_var($email, FILTER_VALIDATE_EMAIL);
    if ($email) {
        try {
            $user = $container['userService']->createUser($email, $params['password'], $params['confirm-password']);
            $app->log->info(sprintf('New user %s has been created', $user['email']));
            $app->flash('joinSuccess', sprintf('Congrats %s! Now log in and get started!', $user['email']));
开发者ID:neophyt3,项目名称:flaming-archer,代码行数:31,代码来源:index.php

示例14: formatOutput

 /**
  * This method formats the output to be in proper JSON format
  * @param  Slim     $app
  * @param  integer  $statusCode
  * @param  string   $message
  */
 public static function formatOutput(Slim $app, $statusCode, $message)
 {
     $responseMessage = ['Status' => $statusCode, 'Message' => $message];
     $app->halt($statusCode, json_encode($responseMessage));
 }
开发者ID:andela-womokoro,项目名称:naija_emojis,代码行数:11,代码来源:OutputFormatter.php

示例15: delete

 /**
  * Delete user's account
  *
  * @param string $username username of a user
  * @param Slim $app
  * @return string
  */
 public static function delete($username, Slim $app)
 {
     $app->response->headers->set('Content-Type', 'application/json');
     try {
         $user = User::where('username', $username);
     } catch (RecordNotFoundException $e) {
         $app->halt(404, json_encode(['message' => 'Not Found']));
     }
     if (is_object($user)) {
         $fields = $app->request->isPut() ? $app->request->put() : $app->request->patch();
         if (md5($fields['password']) == $user->getRecord()['dbData']['password']) {
             $check = User::destroy($user->getRecord()['dbData']['id']);
             if ($check === 1) {
                 return json_encode(['message' => 'Account Deleted']);
             } else {
                 $app->halt(304);
             }
         } else {
             $app->halt(401);
         }
     } else {
         $app->halt(503);
     }
 }
开发者ID:andela-kerinoso,项目名称:emoji-RESTful-api,代码行数:31,代码来源:UserController.php


注:本文中的Slim\Slim::halt方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。