問題タブ [flask-httpauth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2458 参照

python - Flask-httpauth: get_password デコレーターは、basic-auth でどのように機能するのですか?

http-basic-auth を簡素化するために、このフラスコ拡張機能を使用した人がいるのだろうか。

基本的に、私はこの例を理解していません:

デコレーターは、指定されたユーザーのクリア パスワードを返すように見え、get_passwordそれがユーザーが提供したものと一致する場合、承認が付与されます。

しかし、そもそもユーザーのクリア パスワードに誰もアクセスできないようにする必要があります。私は通常、クリア パスワードとユーザー名をバックエンドに送信し、パスワードをハッシュして、データベース内の既存のハッシュされたパスワードと比較します。

これはどのように想定されていますか?

アップデート:

ドキュメントへのリンクは、さらに光を当てます。これを達成するために必要な2番目のデコレータがあるため:

ルールは文字通りget_password(username) == hash_password(password)

これが機能することを理解する方法はget_password、データベース内のユーザーのハッシュされたパスワードを返すことです。これは、hash_passwordメソッドで定義されている現在ハッシュされているパスワードと同じである必要があります。

問題は、私はpasslib から sha256_cryptを使用していることです。

ここでは、指定されたパスワードをハッシュして、保存されているハッシュされたパスワードと比較することはできません。sha256_crypt.verify(password, hashed_password_in_db)false または true を返す method を使用する必要があります。

これを達成する方法はありますか、それとも独自のカスタム ソリューションを作成する必要がありますか? ありがとう

0 投票する
2 に答える
2219 参照

python - フラスコの http-auth と単体テスト

やあ!

Flask-HTTPAuth によって実装されている HTTP 基本認証を使用して保護したルートがあります。curl を使用するとすべて正常に動作します (ルートにアクセスできます) が、単体テストの際に、正しいユーザー名とパスワードを指定しても、ルートにアクセスできません。

私のテストモジュールに関連するコードスニペットは次のとおりです。

Flask-HTTPAuth で必要なコールバック メソッドは次のとおりです。

任意のルート:

単体テストで次の例外がスローされます。

テストクライアントに指定したのとまったく同じ引数でcurlを実行するとすべてが正常に機能することをもう一度強調したいのですが、テストを実行すると、verify_passwordメソッドは呼び出されません。

ご助力ありがとうございます!

0 投票する
2 に答える
1585 参照

python-2.7 - フラスコ認証を使用したフラスコ安静:認証が異なる複数のHTTPメソッド

複数のHTTP(GET、POST、PUT、DELETE)メソッドを持つ同じURLを取得しようとしていますが、メソッドごとにフラスコ認証を使用した異なる認証があります。

私はクラスのようなもの以上を作成しようとしました

しかし、何が起こったのかrestful_api.add_resource(PostUser,'/User')はオーバーライドされますrestful_api.add_resource(GetUser,'/User')

0 投票する
5 に答える
7524 参照

python - Flask-HTTPAuth verify_password 関数がユーザー名またはパスワードを受信しない

デコレーターでルートにアクセスしようとすると@auth.login_required、ユーザー名とパスワードを入力するウィンドウが表示されます。この情報を入力すると、関数のパラメータusername_or_tokenとは になります。データが空なのはなぜですか?passwordverify_password''

アップデート

コードを次のように簡略化しました。

を使用してこの機能をテストしていAdvanced Rest Clientます。

http://localhost:8081/myapp/api/token

Authorizationヘッダーも付けました。

これにより、次の出力が得られます。

Hello, !

ログ ファイル:

また、入力を求められることもありませsecurity credentialsん。

もう 1 つの奇妙な点は、 return をfalseinに変更してもverify_password、同じ出力が得られることです。Hello, !

0 投票する
0 に答える
493 参照

python - フラスコ-http認証でのローカルホストの問題

私は次のものを持っています:

api/tokenを使用してルートにアクセスするとlocalhost、 myusernameとを入力するよう求められますpassword。その後、ログを確認すると、username_or_token変数が''.

奇妙なことに、私はまったく同じコードを自分online serverでテストしましたが、問題はありませんでした..

を使用してAdvanced Rest Clientいます。これを使用するときは、ドロップダウン フィールドとタブの下pluginに を追加して使用します。で実行するときも同じことをしています。Authorisation headerLoginPasswordBasiconline server

を使用してXAMPPいます。他にどのような情報を提供すればよいかよくわかりません。

誰もこれを経験したことがありますか?

リクエストの詳細

HTTPIE 出力

ここに画像の説明を入力 ここに画像の説明を入力

もう一度、usernameに設定し''ます。

0 投票する
1 に答える
1986 参照

python - どこにでもデコレータを追加するのではなく、デフォルトの login_required

アプリで認証を処理するために Flask-HTTPAuth を使用しています。login_required私には多くのビューがあり、それらすべてに追加したくありません。デフォルトでログインを必須にするにはどうすればよいですか?

0 投票する
3 に答える
958 参照

python - Flask-restful アプリを再構築していますが、アプリを実行するために HTTP 認証を配置するのに問題があります

基本的に、次のようなディレクトリがあります。

私のauth.pyには、標準のHTTP基本ユーザー名/パスワード認証があります。これらは、ログインが必須の領域で使用し、各ユーザーを確認したいと考えています。Login.py はデコレーターを追加する必要がある場所ですが、このエラーのためにアプリ全体が実行されません: AttributeError: 'module' object has no attribute 'login_required'

デコレータを呼び出してから認証を要求するlogin.pyの私のコード。

まとめると、私の質問は次のとおりです。デコレータを使用できるように、flask-httpauth クラスを追加する方法と場所を教えてください。今の私の選択肢は、その認証コードを必要とするすべてのリソース クラスに貼り付けることかもしれませんが、それを整理するためのより良い方法があるはずです。ヘルプ?

0 投票する
1 に答える
2454 参照

angularjs - 基本認証ヘッダーが失われているようです

私は Flask RESTful サーバーと AngularJS クライアントを書いていますが、いわば送信中にユーザー名とパスワードの情報が失われているように見える問題に直面しています。

Javascript コンソールでは、クライアントが Authorization ヘッダーを期待どおりに送信していることがわかりますAuthorization: Basic username:password。ただし、@auth.verify_password コールバック内では、両方とも空です。

コードのサーバー部分についてかなりの単体テストがあり、認証情報はそれらすべてに存在しているように見えるため、場合によってはヘッダー内から少なくともユーザー名とパスワードを取得できることは心強いです.

さらに、CORS 拡張機能をサーバー コードに追加し、サーバー全体で使用できるようにしました。以下の URL への OPTIONS (常に 200 を返す) は、同じ URL への GET (ユーザー名とパスワードの問題により 401 を返す) の直前に常に呼び出されるようです。

参照コード:

サーバー認証コールバック:

期待どおりに動作するサーバー ユニットのテスト コード:

ブラウザで検査すると適切なヘッダーを生成するが、認証コールバックで空のユーザー名とパスワードを生成する AngularJS コード: