Laravel - Api请求

时间:2014-10-24 14:49:08

标签: api curl laravel-4

我有一个使用Laravel 4.2建立的网站和一个只有登录用户才能访问的控制器:

Route::group(['prefix' => 'pannello-utente', 'before' => 'auth'], function ()
{
    Route::get('elenco-animali/{nome?}', ['uses' => 'PazientiController@index']);
    Route::get('download/{cartella}/{file}', ['uses' => 'PazientiController@download']);
});

auth方法请求用户插入电子邮件和密码。

PazientiController我有__construct方法执行一些检索代码的查询并在另一种方法中使用它:

public function __construct()
{
    $this->current_user = Auth::user();

    //Recupero il codice cliente salvato nel profilo utente
    $this->codice = User::find($this->current_user->id)->first()->profile->codice_cliente;
}

此代码仅保存在数据库中,目前没有其他应用程序拥有它,因此我每次都需要执行该查询。

我需要这个,现在通过curl然后通过智能手机应用程序,用户可以访问该方法,所以我需要用户登录之前:

curl --user chri788@gmail.com:adminadmin localhost:8888/*****/public/pannello-utente/elenco-animali

但我明白了:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta http-equiv="refresh" content="1;url=http://localhost:8888/*****/public/login" />

        <title>Redirecting to http://localhost:8888/*****/public/login</title>
    </head>
    <body>
        Redirecting to <a href="http://localhost:8888/******/public/login">http://localhost:8888/****/public/login</a>.
    </body>
</html>

如何访问该控制器?

1 个答案:

答案 0 :(得分:0)

curl的--user标志触发HTTP基本身份验证。 Laravel支持此功能,但不支持auth过滤器 - 它需要auth.basic过滤器。

您可以编写一个自定义过滤器来检查authauth.basic,或者您可以提供一组使用备用过滤器的单独路径(可能带有前缀api)。 / p>

http://laravel.com/docs/4.2/security#http-basic-authentication