リクエスターを自分のサーバーではなく、nodeJSのクライアントとして設定できますか?

リーバー愛好家

まず第一に、私の英語が下手でごめんなさい、そしてこの質問をクリックしてくれてありがとう。

別のWebサーバーのAPIを使用するGUIサービス(単純なhtml)だけを作成したいと思います。

私のサービスは、他のAPIに要求する「htmlボタン」のみを提供します。

そこで、APIkeyとSecretKeyを転送するPOSTメソッドフォームをhtmlにコーディングしました。

'uuid'、 'jsonwebtoken'モジュールを使用してAPIkeyとSecretkeyを処理しました。(APIプロバイダーはこれを必要としていました)

また、「request」モジュールを使用してAPIをリクエストしました。

これが私のコードの一部です。

...

const request = require('request');
const { v4: uuidv4 } = require('uuid');
const sign = require('jsonwebtoken').sign

...

,(req, res)=>{
  const access_key = req.keydata.apikey;
  const secret_key = req.keydata.secret;
  const server_url = "https://api.url.com";

  const payload = {
      access_key: access_key,
      nonce: uuidv4(),
  };

  const token = sign(payload, secret_key);

  const options = {
      method: "GET",
      url: server_url + "/v1/foo",
      headers: {Authorization: `Bearer ${token}`},
  }

  request(options, (error, response, body) => {
      if (error) throw new Error(error);
      res.send(body);
  })

...

しかし、この方法では、クライアントではありませんが、他のAPIにリクエストします。

リクエスターをクライアントに設定したい。私のサーバーの方法ではありませんリクエストを行います。

サーバーがAPIkeyとsecKeyを使用して作成した「トークン」をクライアントに送信できますか?

その後、クライアントはトークンを含むカスタムヘッダーを使用してXHR toAPIを実行します。

この方法でセキュリティの問題はありますか?

またはリクエスターを変更する他の方法はありますか?

ブラッド

サーバーがAPIkeyとsecKeyを使用して作成した「トークン」をクライアントに送信できますか?

はい。実際、これはかなり一般的であり、通常行うことです。(たとえば、AWS S3のユーザーはURLに署名し、それらをクライアントに送信します。クライアントは実際にS3に直接リクエストを行います。)

JSONを使用するだけで、クライアントが使用する必要のあるURLとヘッダーを返すことができます。

その後、クライアントはトークンを含むカスタムヘッダーを使用してXHR toAPIを実行します。

あなたがしたい場合はXHRを使用していますが、チェックアウトすることができます取得APIを作業が簡単で、ブラウザで十分にサポートされています。

この方法でセキュリティの問題はありますか?

あんまり。署名されたURLが他人に傍受されて使用されないように、どこでもHTTPSを使用していることを確認してください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Yii2のコントローラーのアクションでクラスエイリアスを設定できないのはなぜですか

分類Dev

AngularJSを使用すると、サーバーでSQL結合ではなく、クライアントでデータの結合を実行できますか?

分類Dev

サーバーとクライアントの両方でブロックすることなく、サーバーでリアルタイムに書き込まれているアップロードされたファイルのファイルサイズを読み取ってエコーする方法は?

分類Dev

iOS:サイズクラス(または他のソリューション)を適切に使用して、さまざまな縦向きと横向きのレイアウトを設定するにはどうすればよいですか?

分類Dev

OpenGL / GLFWでテクスチャパラメータを設定して、遠くからオブジェクトを表示するときにテクスチャのエイリアシング(オブジェクトの境界での波状の動作)を回避するにはどうすればよいですか?

分類Dev

SpringBootアプリがElasticSearchをリクエストしているときに、すべてのインデックスデータ検索でFuzzyパラメーターをアプリパラメーターとして設定することは可能ですか?

分類Dev

自分自身を参照しているサブスクライバーから「初期化前に「変数」にアクセスできません」というエラーが表示されるのはなぜですか?

分類Dev

スクリプト以外のリソースをホットリンク/埋め込みした場合、サードパーティのサイトが自分のサイトを介してCookieを設定できますか?

分類Dev

含まれているパラメーターを使用して独自のカスタム アプリを開くリンクを電子メールまたはテキストで Android デバイスに送信することはできますか?

分類Dev

MatlabのクライアントはどのようにしてバイナリデータをCのサーバーに送信できますか?

分類Dev

なぜJavaで使用セッター我々はコンストラクタを使用してすべての値を設定することができますか?

分類Dev

Ubuntuサーバーのnodejsでディレクトリを動的に作成しているときにエラーが発生するのはなぜですか?

分類Dev

エクスプレスアプリサーバー。localhostだけでなくすべてのインターフェースをリッスンします

分類Dev

エラー:設定されたアクセサーにアクセスできないため、プロパティまたはインデクサー「CharacterStats.currentHealth」をこのコンテキストで使用することはできません

分類Dev

GPOをあるサーバーからエクスポートして別のサーバーにインポートすることはできますか?

分類Dev

サーバーでホストしているファイルは、それらへのリンクをクリックすると、ブラウザーで開くのではなくダウンロードされますか?

分類Dev

PCのメインハードディスクを、ファイルをバックアップするためのセカンダリハードドライブとして別のPC /サーバーに置くことはできますか?

分類Dev

nodejs + expressを使用してサーバー側とクライアント側のエラーに対処するための最良の方法は何ですか

分類Dev

ReactはHTTPSのときに/ auth / twitter / whenをインターセプトします。反応アプリケーションではなく、ノードサーバーから/ auth / twitter /にアクセスしたい

分類Dev

サーバーはどのようにしてクライアントからのコレクションをサブスクライブできますか?

分類Dev

FTPクライアントはFTPサーバーのタイムアウト設定を制御できますか?

分類Dev

クラスタリング(NDBClusterまたはGalera)を使用している場合、nodejsアプリはどのようにしてフェイルオーバーMySQLサーバーの1つに接続できますか?

分類Dev

クライアントがサービスWebサイトの自分のページにカスタムドメインを設定できるようにするにはどうすればよいですか?

分類Dev

領事エージェントは、自分がクラスターのリーダーであることをどのようにして知るのですか?

分類Dev

を使用してメンバーテンプレートtypedefにエイリアスを設定すると、コンパイラはそれがクラステンプレートではないと見なします。

分類Dev

ネットワーク上の2つのプライベートネットワークのルーターとしてUbuntuサーバーを設定し、DHCPアドレス指定を行うにはどうすればよいですか?

分類Dev

アプリケーションからAndroidモバイル設定の位置情報サービスで自分の場所へのアクセスをオンにできるオプションはありますか?

分類Dev

サーバーからクライアントへのショートカットの作成は、クライアントのショートカットを置き換えることなく動的にパスを変更できます

分類Dev

Javaですべてのメンバーをプライベートまたはパブリックアクセスモードに設定します

Related 関連記事

  1. 1

    Yii2のコントローラーのアクションでクラスエイリアスを設定できないのはなぜですか

  2. 2

    AngularJSを使用すると、サーバーでSQL結合ではなく、クライアントでデータの結合を実行できますか?

  3. 3

    サーバーとクライアントの両方でブロックすることなく、サーバーでリアルタイムに書き込まれているアップロードされたファイルのファイルサイズを読み取ってエコーする方法は?

  4. 4

    iOS:サイズクラス(または他のソリューション)を適切に使用して、さまざまな縦向きと横向きのレイアウトを設定するにはどうすればよいですか?

  5. 5

    OpenGL / GLFWでテクスチャパラメータを設定して、遠くからオブジェクトを表示するときにテクスチャのエイリアシング(オブジェクトの境界での波状の動作)を回避するにはどうすればよいですか?

  6. 6

    SpringBootアプリがElasticSearchをリクエストしているときに、すべてのインデックスデータ検索でFuzzyパラメーターをアプリパラメーターとして設定することは可能ですか?

  7. 7

    自分自身を参照しているサブスクライバーから「初期化前に「変数」にアクセスできません」というエラーが表示されるのはなぜですか?

  8. 8

    スクリプト以外のリソースをホットリンク/埋め込みした場合、サードパーティのサイトが自分のサイトを介してCookieを設定できますか?

  9. 9

    含まれているパラメーターを使用して独自のカスタム アプリを開くリンクを電子メールまたはテキストで Android デバイスに送信することはできますか?

  10. 10

    MatlabのクライアントはどのようにしてバイナリデータをCのサーバーに送信できますか?

  11. 11

    なぜJavaで使用セッター我々はコンストラクタを使用してすべての値を設定することができますか?

  12. 12

    Ubuntuサーバーのnodejsでディレクトリを動的に作成しているときにエラーが発生するのはなぜですか?

  13. 13

    エクスプレスアプリサーバー。localhostだけでなくすべてのインターフェースをリッスンします

  14. 14

    エラー:設定されたアクセサーにアクセスできないため、プロパティまたはインデクサー「CharacterStats.currentHealth」をこのコンテキストで使用することはできません

  15. 15

    GPOをあるサーバーからエクスポートして別のサーバーにインポートすることはできますか?

  16. 16

    サーバーでホストしているファイルは、それらへのリンクをクリックすると、ブラウザーで開くのではなくダウンロードされますか?

  17. 17

    PCのメインハードディスクを、ファイルをバックアップするためのセカンダリハードドライブとして別のPC /サーバーに置くことはできますか?

  18. 18

    nodejs + expressを使用してサーバー側とクライアント側のエラーに対処するための最良の方法は何ですか

  19. 19

    ReactはHTTPSのときに/ auth / twitter / whenをインターセプトします。反応アプリケーションではなく、ノードサーバーから/ auth / twitter /にアクセスしたい

  20. 20

    サーバーはどのようにしてクライアントからのコレクションをサブスクライブできますか?

  21. 21

    FTPクライアントはFTPサーバーのタイムアウト設定を制御できますか?

  22. 22

    クラスタリング(NDBClusterまたはGalera)を使用している場合、nodejsアプリはどのようにしてフェイルオーバーMySQLサーバーの1つに接続できますか?

  23. 23

    クライアントがサービスWebサイトの自分のページにカスタムドメインを設定できるようにするにはどうすればよいですか?

  24. 24

    領事エージェントは、自分がクラスターのリーダーであることをどのようにして知るのですか?

  25. 25

    を使用してメンバーテンプレートtypedefにエイリアスを設定すると、コンパイラはそれがクラステンプレートではないと見なします。

  26. 26

    ネットワーク上の2つのプライベートネットワークのルーターとしてUbuntuサーバーを設定し、DHCPアドレス指定を行うにはどうすればよいですか?

  27. 27

    アプリケーションからAndroidモバイル設定の位置情報サービスで自分の場所へのアクセスをオンにできるオプションはありますか?

  28. 28

    サーバーからクライアントへのショートカットの作成は、クライアントのショートカットを置き換えることなく動的にパスを変更できます

  29. 29

    Javaですべてのメンバーをプライベートまたはパブリックアクセスモードに設定します

ホットタグ

アーカイブ