1

Express-stormpath を使用して、エクスプレス アプリでユーザー管理を処理しています。私は、電子メールとパスワードのみを必要とする、stormpath のデフォルトのログイン ビューとメソッドを使用しています。ただし、問題が実際にストームパスによるものかどうかはわかりません。いくつかの CRUD ルートをテストするとき、正しい資格情報を入力していると確信していますが、認証は失敗します。まあ、完全に失敗するわけではありません。ステータス 200 または 302 が表示され、ログイン ページにリダイレクトされます。

httpie で使用しているコマンドは次のとおりです。

http --verbose -a username@email.com:password localhost:3000/api/users

上記の httpie コマンドからの出力は次のとおりです。 ここに画像の説明を入力

Postman (Chrome REST クライアント) の場合、Basic Auth ヘルパーを使用しています。 ここに画像の説明を入力

ただし、Web クライアント経由でアプリにログインすることはできます。

何が起こっている?

編集 1

これは私がルートを保護してきた方法です:

app.use('/', stormpath.loginRequired, routes);

app.use('/api/users', stormpath.apiAuthenticationRequired, users);

4

2 に答える 2

0

私はStormpathで働いており、私がお手伝いできるはずです。/api/usersどのようにルートを保護しているか教えていただけますか? stormpath.apiAuthenticationRequired基本認証を使用する場合は、ミドルウェアを使用する必要があります。

于 2015-06-29T17:49:10.123 に答える
0

私はこのライブラリの作成者です。ただ参加したかっただけです。

ここでの問題は、ユーザー名とパスワードで認証していることです。これは、API 認証の仕組みではありません。

最初にユーザー アカウントの API キーを作成し、それを使用して認証する必要があります。

ユーザー アカウントの API キーを作成する方法の例を次に示します。

req.user.createApiKey(function(err, key) {
  res.send('New API key created: id=' + key.id + ' secret=' + key.secret);
});

これにより、ユーザーの新しい API キーがプロビジョニングされ、出力されます。

API キー (ID とシークレットの 2 つの部分に分かれています) を取得したら、次のようなリクエストを行うことができます。

http --verbose -a apikeyid:apikeysecret localhost:3000/api/users

これが役立つことを願っています=)

于 2015-07-01T01:04:33.510 に答える