Skip to content
This repository was archived by the owner on Aug 7, 2023. It is now read-only.

Commit 2872ccc

Browse files
fix: add prefix value of token.
1 parent 8e14eb4 commit 2872ccc

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

src/AbstractExtractor.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,28 @@ abstract class AbstractExtractor implements ExtractorInterface
2424

2525
private string $issuer;
2626

27+
private ?string $prefix;
28+
2729
public function __construct(
2830
string $issuer,
2931
string $in,
30-
string $item
32+
string $item,
33+
string $prefix = null
3134
) {
3235
if ('' === $issuer) {
3336
throw new \LogicException('Issuer can not be blank!');
3437
}
3538

3639
if (self::IN_HEADER !== $in && self::IN_QUERY_PARAM !== $in) {
37-
throw new \LogicException(sprintf('Item must in: `%s` or `%s`, can not in: `%s`', self::IN_HEADER, self::IN_QUERY_PARAM, $in));
40+
throw new \LogicException(
41+
sprintf('Item must in: `%s` or `%s`, can not in: `%s`', self::IN_HEADER, self::IN_QUERY_PARAM, $in)
42+
);
3843
}
3944

4045
$this->issuer = $issuer;
4146
$this->in = $in;
4247
$this->item = $item;
48+
$this->prefix = $prefix;
4349
}
4450

4551
final public function extract(ServerRequestInterface $request): ?array
@@ -53,6 +59,14 @@ final public function extract(ServerRequestInterface $request): ?array
5359
return null;
5460
}
5561

62+
if (null !== $this->prefix) {
63+
if (!str_starts_with($value, $this->prefix)) {
64+
return null;
65+
}
66+
67+
$value = substr($value, strlen($this->prefix));
68+
}
69+
5670
$payload = $this->extractFromValue($value);
5771

5872
if (null === $payload || $this->issuer !== ($payload['iss'] ?? null)) {

src/ExtractorFactory.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public static function fromBase64Header(string $issuer, string $header): Extract
1919

2020
public static function fromOriginTokenHeader(string $issuer, string $header): ExtractorInterface
2121
{
22-
return new OriginTokenExtractor($issuer, AbstractExtractor::IN_HEADER, $header);
22+
return new OriginTokenExtractor($issuer, AbstractExtractor::IN_HEADER, $header, 'Bearer ');
2323
}
2424

2525
public static function fromOriginTokenQueryParam(string $issuer, string $queryParam): ExtractorInterface

0 commit comments

Comments
 (0)