feat(sp.assertion): 直接处理 Response 并做出响应

This commit is contained in:
李东云
2022-04-28 15:23:52 +08:00
parent b6c5979530
commit 7800db78f2

View File

@@ -16,6 +16,7 @@ use LightSaml\Model\Protocol\LogoutResponse;
use LightSaml\Model\Protocol\Response;
use LightSaml\SamlConstants;
use Singularity\HyperfDevelopmentKit\Account\Resource\User;
use Singularity\HyperfDevelopmentKit\Account\Services\Auth\TokenServiceInterface;
use Singularity\HyperfDevelopmentKit\Utils\Exceptions\Unauthorized;
use Singularity\HyperfDevelopmentKit\Utils\Exceptions\ValidateException;
use Singularity\HyperfSaml\Constants\SamlErrorCode;
@@ -37,7 +38,8 @@ class Assertion
public function __construct(
private Base $base,
private RequestInterface $request,
private ResponseInterface $response
private ResponseInterface $response,
private TokenServiceInterface $tokenService
) {
}
@@ -73,12 +75,15 @@ class Assertion
*
* @param \LightSaml\Model\Protocol\Response $response
*
* @return \Singularity\HyperfDevelopmentKit\Account\Resource\User
* @return \Psr\Http\Message\ResponseInterface
*/
public function consumeResponse(Response $response): User
public function consumeResponse(Response $response): \Psr\Http\Message\ResponseInterface
{
$user = $this->base->getAllAttributes($response);
return new User($user);
$user = new User($user);
$this->tokenService->generate($user);
return $user->toResponse();
}
/**