3

これは非常に簡単なように思えますが、私は本当にそれを理解することはできません. Laravel 4Auth::attempt($credentials)で使用したいのですが、既にハッシュされているパスワードを使用します (API であるため)。ハッシュ化されていないパスワードを送信すると機能しますが、指定されたパスワードを「ハッシュしない」ように Auth に指示する方法がわかりません。

簡単な「デモ」</p>

機能するもの:

Auth::attempt([Request::getUser(), Request::getPassword()]);

curl --user username:notHashedPassword localhost:8000/api/

機能しないもの:

Auth::attempt([Request::getUser(), Request::getPassword()]);

curl --user username:$2y$08$xo7HpxFyeF2UKHOYs/e localhost:8000/api/

Auth::attempt()再ハッシュしようとするのではなく、そのまま使用するように伝えることができる引数はありますか?

4

3 に答える 3

1

Laravel で使用されるハッシュ方法は、毎回異なるハッシュを生成します (同じ文字列であっても)。これについては、Laravelのハッシュで詳しく読むことができます。ご覧のとおり、両方の文字列をハッシュして比較するのではなく、ハッシュされていない文字列を使用してハッシュと比較します。

本当にこれを行いたい場合は、独自の認証プロバイダーと、ハッシュを比較できる別のハッシュ アルゴリズムを実装する必要があります。

セキュリティが心配な場合は、安全な詳細 (パスワードを含む) がプレーン テキストで送信されないように、HTTPS を検討する必要があります。

于 2013-04-14T16:59:31.177 に答える