react-reduxを使用してログイン認証を実装するにはどうすればよいですか?

ラルフ

少し調査した後、JWTは、そのコンパクトな性質と解析のしやすさから、ログイン認証に一般的に使用されています。私はJWTを使用することに決めました。しかし、私の質問は、これを私のreduxパラダイムにどのように組み込むかということです。サインアップフォームがあるとすると、ユーザーが自分の資格情報を入力して送信ボタンをクリックすると、アクションが呼び出され、JWTを作成するアクションが作成されます。これで、このアクションはアプリケーションのバックエンドに送られ、アプリケーションのバックエンドはJWT APIを呼び出しますか?それで、このアクションは非同期/ rpc呼び出しですか?また、ルーティングはどのように正確に行われますか?以前にreact-routerを使用しましたが、ボイラープレートを使用しています。私はこのWebアプリを最初から構築しているので、ルーティングを処理する場所と、サーバーから最初に取得したこのトークンを正確にどこに渡すのかについて少し混乱していますか?ユーザーがリクエストを行うたびにトークンが使用されますか?クライアントは、ユーザーの認証を維持するために、要求を行うたびにこのトークンをどのように認識しますか?

KA01

ユーザーが自分の資格情報(電子メール/パスワード)を送信すると、バックエンドはそれを初めて認証し、今回だけバックエンドがこれらの資格情報を使用します。認証時に、バックエンドはユーザー情報の一部(通常はユーザーIDのみ)を使用してJWTを作成します。これを行うには、JWTライブラリがたくさんあり、javascript用のjwt-decodeあります。バックエンドはこのJWTで応答し、フロントエンドはlocalStorage.setItem('authToken', jwt)後続のすべてのリクエストに対してJWTを保存します(つまり)。

ユーザーは、Authorizationキーの下のリクエストヘッダーにJWTを使用してリクエストを送信します。何かのようなもの:

function buildHeaders() {
    const token = localStorage.getItem('authToken')

    return {
      "Accept": "application/json",
      "Content-Type": "application/json"
      "Authorization": `${token}`
    }
}

これで、バックエンドがJWTをデコードして認証します。有効なJWTの場合はリクエストが続行され、そうでない場合は拒否されます。

React-Routerを使用すると、このonEnter機能を使用して認証済みルートを保護できます。指定した関数は、必要なチェックを行います(JWTのlocalStorageをチェックし、現在のユーザーかどうかをチェックします)。通常、私はこれを行いました:

const _ensureAuthenticated = (nextState, replace) => {
    const { dispatch } = store
    const { session } = store.getState()
    const { currentUser } = session
    const token = localStorage.getItem("phoenixAuthToken")
    if (!currentUser && token) {     // if no user but token exist, still verify
      dispatch(Actions.currentUser())
    } else if (!token) {             // if no token at all redirect to sign-in
      replace({
        pathname: "/sign-in",
        state: { nextPathname: nextState.location.pathname}
      })
    }
  }

この関数は、次のような任意のルートで使用できます。

<Route path="/secret-path" onEnter={_ensureAuthenticated} />

JWTの詳細についてはjwt.ioを、react-routerを使用した認証の詳細についてはreact- routerauth -flowの例確認してください

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

React NativeでFirebaseを使用してMicrosoftログインを実装するにはどうすればよいですか?

分類Dev

Laravel認証を使用しているときにユーザーがreactコンポーネントに「ログイン」しているかどうかを確認するにはどうすればよいですか?

分類Dev

React Native-ログイン後に認証トークンを保存して他の画面に移動するにはどうすればよいですか?

分類Dev

React-admin-認証されていない場合、Dasbhoardにログインを要求させるにはどうすればよいですか?

分類Dev

同じコンポーネントでreact-reduxを使用してロードフラグを制御するにはどうすればよいですか?

分類Dev

React with Reduxを使用してプリローダーを作成するにはどうすればよいですか?

分類Dev

React Hooksを使用して、ラジオボタンの[すべてチェック]ボタンを実装するにはどうすればよいですか?

分類Dev

React-Reduxでログインステータスを確認するにはどうすればよいですか?

分類Dev

画像値を取得して、reactで別のdivに実装するにはどうすればよいですか?

分類Dev

react-virualisedを使用してテーブルに無限スクロールを実装するにはどうすればよいですか?

分類Dev

認証されたルートと認証されていないルートがある場合、Expressを使用してreactアプリをクライアントに送信するにはどうすればよいですか?

分類Dev

ReactJS.NETを使用してreduxでreactアプリをレンダリングするにはどうすればよいですか?

分類Dev

React Nativeの使用中にSSL証明書のピン留めを実装するにはどうすればよいですか?

分類Dev

React Nativeの使用中にSSL証明書のピン留めを実装するにはどうすればよいですか?

分類Dev

React Nativeの使用中にSSL証明書のピン留めを実装するにはどうすればよいですか?

分類Dev

Reactルーターを使用してログインステータスを処理するにはどうすればよいですか?

分類Dev

auth0を使用してReact SPAからのAPI呼び出しを適切に認証するにはどうすればよいですか?

分類Dev

ログイン後にreact-reduxとreact-aad-msalを使用してアクションをトリガーするにはどうすればよいですか?

分類Dev

React&Redux、ExpressバックエンドアプリでJWTを使用し、redux-persistなどのパッケージを使用せずにユーザーログインを永続化するにはどうすればよいですか?

分類Dev

システムダイアログを起動せずに、Expoを使用してReact-Nativeでカメラの許可をサイレントに確認するにはどうすればよいですか?

分類Dev

Mongo Stitch React-NativeSDKを使用してGoogleOAuthの認証コードを取得するにはどうすればよいですか?

分類Dev

パスポートを使用してReactアプリを認証するにはどうすればよいですか?

分類Dev

React + Fluxを使用して10000を超えるアイテムを高速レンダリングするにはどうすればよいですか?

分類Dev

reactを使用して関数型プログラミングを開始するにはどうすればよいですか?

分類Dev

ReactシングルページアプリケーションのPKCEでOAuth2認証コード付与を実装するにはどうすればよいですか?

分類Dev

React Routerで、ページを更新してもログイン状態を維持するにはどうすればよいですか?

分類Dev

React Webアプリのfirebaseの認証セクションで作成された資格情報を使用してサインインするにはどうすればよいですか?

分類Dev

Reactを使用して同じ関数でスタイリングを2回設定するにはどうすればよいですか?

分類Dev

React-ReduxプロジェクトでEsriArcgis Mapsを使用するにはどうすればよいですか?

Related 関連記事

  1. 1

    React NativeでFirebaseを使用してMicrosoftログインを実装するにはどうすればよいですか?

  2. 2

    Laravel認証を使用しているときにユーザーがreactコンポーネントに「ログイン」しているかどうかを確認するにはどうすればよいですか?

  3. 3

    React Native-ログイン後に認証トークンを保存して他の画面に移動するにはどうすればよいですか?

  4. 4

    React-admin-認証されていない場合、Dasbhoardにログインを要求させるにはどうすればよいですか?

  5. 5

    同じコンポーネントでreact-reduxを使用してロードフラグを制御するにはどうすればよいですか?

  6. 6

    React with Reduxを使用してプリローダーを作成するにはどうすればよいですか?

  7. 7

    React Hooksを使用して、ラジオボタンの[すべてチェック]ボタンを実装するにはどうすればよいですか?

  8. 8

    React-Reduxでログインステータスを確認するにはどうすればよいですか?

  9. 9

    画像値を取得して、reactで別のdivに実装するにはどうすればよいですか?

  10. 10

    react-virualisedを使用してテーブルに無限スクロールを実装するにはどうすればよいですか?

  11. 11

    認証されたルートと認証されていないルートがある場合、Expressを使用してreactアプリをクライアントに送信するにはどうすればよいですか?

  12. 12

    ReactJS.NETを使用してreduxでreactアプリをレンダリングするにはどうすればよいですか?

  13. 13

    React Nativeの使用中にSSL証明書のピン留めを実装するにはどうすればよいですか?

  14. 14

    React Nativeの使用中にSSL証明書のピン留めを実装するにはどうすればよいですか?

  15. 15

    React Nativeの使用中にSSL証明書のピン留めを実装するにはどうすればよいですか?

  16. 16

    Reactルーターを使用してログインステータスを処理するにはどうすればよいですか?

  17. 17

    auth0を使用してReact SPAからのAPI呼び出しを適切に認証するにはどうすればよいですか?

  18. 18

    ログイン後にreact-reduxとreact-aad-msalを使用してアクションをトリガーするにはどうすればよいですか?

  19. 19

    React&Redux、ExpressバックエンドアプリでJWTを使用し、redux-persistなどのパッケージを使用せずにユーザーログインを永続化するにはどうすればよいですか?

  20. 20

    システムダイアログを起動せずに、Expoを使用してReact-Nativeでカメラの許可をサイレントに確認するにはどうすればよいですか?

  21. 21

    Mongo Stitch React-NativeSDKを使用してGoogleOAuthの認証コードを取得するにはどうすればよいですか?

  22. 22

    パスポートを使用してReactアプリを認証するにはどうすればよいですか?

  23. 23

    React + Fluxを使用して10000を超えるアイテムを高速レンダリングするにはどうすればよいですか?

  24. 24

    reactを使用して関数型プログラミングを開始するにはどうすればよいですか?

  25. 25

    ReactシングルページアプリケーションのPKCEでOAuth2認証コード付与を実装するにはどうすればよいですか?

  26. 26

    React Routerで、ページを更新してもログイン状態を維持するにはどうすればよいですか?

  27. 27

    React Webアプリのfirebaseの認証セクションで作成された資格情報を使用してサインインするにはどうすればよいですか?

  28. 28

    Reactを使用して同じ関数でスタイリングを2回設定するにはどうすればよいですか?

  29. 29

    React-ReduxプロジェクトでEsriArcgis Mapsを使用するにはどうすればよいですか?

ホットタグ

アーカイブ