2014-10-06 130 views
0

我目前正在API中實現一個基於令牌的認證系統。這是由Tappleby構建的,它安裝在我的Laravel安裝的Vendor文件夾中。這很適合作爲過濾器。不過,我需要在我的控制器中包的一些功能。我向控制器添加了use Tappleby\AuthToken\AuthToken;,並將必要的行添加到__construct。那雖然不起作用,因爲我總是收到Class AuthTokenDriver does not exist因供應商文件夾找不到Laravel類?

這是因爲該文件在供應商文件夾?您可以在下面看到控制器,但請注意,Tappleby\AuthToken\Exceptions\NotAuthorizedException位於Vendor文件夾中。

use Illuminate\Events\Dispatcher; 

use Tappleby\AuthToken\Exceptions\NotAuthorizedException; 

class ApiUsersController extends ApiController { 

    /** 
    * @var Acme\Transformers\UserTransformer 
    */ 

    protected $UserTransformer; 

    /** 
    * The event dispatcher instance. 
    * 
    * @var \Illuminate\Events\Dispatcher 
    */ 
    protected $events; 

    /** 
    * @var \Tappleby\AuthToken\AuthTokenDriver 
    */ 
    protected $driver; 

    function __construct(UserTransformer $userTransformer, UserLessonsTransformer $userLessonssTransformer, AuthTokenDriver $driver, Dispatcher $events) 
    { 

     $this->UserTransformer = $userTransformer; 

     $this->UserLessonTransformer = $userLessonTransformer; 

     $this->driver = $driver; 

     $this->events = $events; 

    } 

    public function index() 
    { 

     $payload = Request::header('X-Auth-Token'); 

     if(empty($payload)) { 

      return $this->respondNotFound('User does not exist.'); 

     } 

     $user = $this->driver->validate($payload); 

     return $payload; 

    } 

回答

1

Vendor文件夾是什麼Composer使用維護你的包,爲你。因此,如果另一臺服務器或其他人想要檢查您的項目,而不是移植Laravel使用的所有強大軟件包,可以通過Composer下載。

然而,在這種情況下,你需要考慮這方面的文檔包,並確保你遵循都喜歡,包括在你的app/config/app.phpServiceProvider還指出在自述文件的說明: -

https://github.com/tappleby/laravel-auth-token

我不是在這個特別的包裝相當100%清楚,但記得要甩掉你自動加載後: -

composer dump-autoload 

最後,以允許控制器在這個類中使用它,與其他依賴上市試試這個: -

use \Tappleby\AuthToken\AuthTokenDriver; 
+0

然後我得到這個:'目標[Tappleby \的authToken \ AuthTokenProviderInterface]不instantiable.' – user4114789 2014-10-06 21:14:28

+0

你可能不應該直接調用AuthDriver然後。通過將文檔添加到你的'app/config/app.php'中來給別名添加一個別名可能會更容易和更清晰: - ' '''AuthToken'=>'Tappleby \ Support \ AuthTokenNotAuthorizedException'=>'Tappleby \ AuthToken \ Exceptions \ NotAuthorizedException'' – Bludock 2014-10-06 21:18:32

+0

好的,我刪除了它,但已經安裝了別名。儘管如此,別名的概念仍然不清楚。我現在如何使用它們? – user4114789 2014-10-06 21:21:02