public function issueToken(IRequest $request)
    {
        if (!$request->isMethod('post')) {
            throw new InvalidHttpMethodException;
        }

        $grantType = $this->grantTypeResolver->resolve($request);

        return $grantType->grant($request);
    }