Silex令牌认证

时间:2016-04-19 13:41:37

标签: symfony silex

我用silex创建了我的第一个应用程序。只有登录用户才能使用该应用。在第一页中,我创建了一个登录表单,因此用户可以进行身份​​验证。我的安全提供商看起来像:

$app->register(new Silex\Provider\SecurityServiceProvider(), array(
        'security.firewalls' => array(
            'secure_area_edison' => array(
                'pattern' => '^/admin/',
                'form' => array('login_path' => '/', 'check_path' => '/admin/login_check'),
                'logout' => array('logout_path' => '/admin/logout', 'invalidate_session' => true),
                'users' => function () use ($app) {
                    return new App\Services\UserProvider($app['db']);
                },
            ),
        )
    ));

'/ admin'之后的每个网址都要求用户成功通过身份验证。一切正常,现在我想用API扩展我的应用程序。我创建了一个新的控制器,它从数据库中检索数据并返回JSON响应,这项工作也很好。

但是用户如何对此API进行身份验证?我应该在我的用户表中创建一个新列,如“hash”或“token”吗?将检索JSON响应的用户必须在每个get请求中发送令牌,这是正确的方法吗?

网址可以看起来:

/admin/api/allProducts/token/<TOKEN>

1 个答案:

答案 0 :(得分:0)

您应该使用令牌基本身份验证,而不是在每个get请求中传递令牌。 参考:https://github.com/thcolin/silex-simpleuser-jwt