2014-10-06 132 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