0

アプリケーションを作成しており、POST cUrl 呼び出しでユーザーを認証する必要があります。

$app = new Silex\Application();

$app->register(new Silex\Provider\SessionServiceProvider());

$app['debug'] = true;

$app->post('/api/auth/login', function (Request $request) use ($app) {
    if ($request->get('username') === 'admin' && $request->get('password') === 'admin') {
        return $app->json(array('sessionId' => $app['session']->getId()));
    } else {
        $error = array('message' => 'Authentication failed');
        return $app->json($error, 404);
    }
});

私が使用するとき:

curl -X POST -d username=admin -d password=admin http://app.local/api/auth/login

アプリケーションが別のセッション識別子を返すたびに!

4

1 に答える 1

1

PHP コード:

<?php

    require_once __DIR__ . '/../vendor/autoload.php';

    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\HttpFoundation\Request;

    $app = new Silex\Application();
    $app['debug'] = true;

    $app->register(new Silex\Provider\SessionServiceProvider());

    $app->before(function ($request) {
        $request->getSession()->start();
    });

    $app->post('/api/auth/login', function (Request $request) use ($app) {
        if ($request->get('username') === 'admin' && $request->get('password') === 'admin') {
            return $app->json(array('sessionId' => $app['session']->getId()));
        } else {
            $error = array('message' => 'Authentication failed');
            return $app->json($error, 404);
        }
    });

    $app->run();

?>

カール コマンド:

curl -X POST -d username=admin -d password=admin http://app.local/api/auth/login --cookie-jar ./cookie --cookie ./cookie

上記のコマンドは、現在の作業ディレクトリに「cookie」ファイルを書き込みます。ディレクトリが書き込み可能であること、またはユーザーが正しい権限を持っていることを確認してください。

于 2013-01-28T09:02:33.163 に答える