我目前正在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;
}
然后我得到这个:'目标[Tappleby \的authToken \ AuthTokenProviderInterface]不instantiable.' – user4114789 2014-10-06 21:14:28
你可能不应该直接调用AuthDriver然后。通过将文档添加到你的'app/config/app.php'中来给别名添加一个别名可能会更容易和更清晰: - ' '''AuthToken'=>'Tappleby \ Support \ AuthTokenNotAuthorizedException'=>'Tappleby \ AuthToken \ Exceptions \ NotAuthorizedException'' – Bludock 2014-10-06 21:18:32
好的,我删除了它,但已经安装了别名。尽管如此,别名的概念仍然不清楚。我现在如何使用它们? – user4114789 2014-10-06 21:21:02