署名付きURLを実装できたのですが、署名生成の原理を理解したいとおもいます。
Laravel 5.8 URL生成
ライブラリを読んでいるのですが、題記の件がわからずご教示ください。
わかっている事
署名付きのURL作成は、URL::signedRoute
で行います。
対象の関数が下記で実行されるのはわかるのですが、関数を辿っても保存している処理の箇所を見つける事ができませんでした。
laravel/framework/src/Illuminate/Routing/UrlGenerator.php
php
1 public function signedRoute($name, $parameters = [], $expiration = null, $absolute = true) 2 { 3 $parameters = $this->formatParameters($parameters); 4 5 if ($expiration) { 6 $parameters = $parameters + ['expires' => $this->availableAt($expiration)]; 7 } 8 9 ksort($parameters); 10 11 $key = call_user_func($this->keyResolver); 12 13 return $this->route($name, $parameters + [ 14 'signature' => hash_hmac('sha256', $this->route($name, $parameters, $absolute), $key), 15 ], $absolute); 16 }
データベースには、MySQLとredisを使っているのですが、生成後、特に更新されません。
別ブラウザで署名付きURLにアクセスしても処理できますので、sessionも関係ないと考えます。
所感
署名を作成する以外の処理で関係しそうなのが、下記だと思っていたのですが、
キーを作成するだけの処理で、保存処理まではかかっていないように思います。
call_user_func($this->keyResolver)
コンストラクタでもそれらしい処理をしていないように思います。
お伺いしたい事
- 何処に保存されているのでしょうか?
- configで設定する保存先を設定する項目はありましたでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/22 04:27