baserCMS クラスリファレンス

RedirectUriRegistrationValidator
in package

登録時の redirect_uri を検証する

認可時の照合(league の RedirectUriValidator)とは責務が異なる。こちらは 「そもそも登録を受け付けてよい URI か」を判定する。動的クライアント登録が 無認証で開いているため、平文の http で任意のホストへコードを飛ばせる登録を 入口で弾く必要がある。

Table of Contents

Constants

MAX_URIS  : mixed = 5
登録できる redirect_uri の上限件数
LOOPBACK_HOSTS  : mixed = ['127.0.0.1', '::1', 'localhost']
http を許容するループバックホスト

Methods

validate()  : void
redirect_uri の配列を検証する
validateOne()  : void
単一の redirect_uri を検証する

Constants

LOOPBACK_HOSTS

http を許容するループバックホスト

private mixed LOOPBACK_HOSTS = ['127.0.0.1', '::1', 'localhost']

RFC 8252 は IP リテラルを推奨しているが、ローカル環境の baserCMS は http で動くため localhost も許容する。リダイレクト先が利用者の端末内に 限られるためリスクは小さい。

Methods

validate()

redirect_uri の配列を検証する

public validate(mixed $redirectUris) : void

「登録を受け付けてよいか」の判定はこのクラスの責務のため、配列以外が 渡された場合(JSON の redirect_uris が文字列や数値だった場合など)の 型チェックもここで完結させる。呼び出し側の型ヒントを array にすると TypeError(Exception を継承しないため呼び出し元の catch (Exception) で 捕捉できず 500 になる)を招くため、引数は mixed で受けて内部で判定する。

Parameters
$redirectUris : mixed

redirect_uri の配列(を想定する値)

Tags
throws
InvalidArgumentException

validateOne()

単一の redirect_uri を検証する

private validateOne(mixed $uri) : void
Parameters
$uri : mixed

redirect_uri

Tags
throws
InvalidArgumentException
On this page

Search results