1

Amazon の Cognito ユーザー プールを使用して SAML SSO 認証を開始しています。私が使っaws-amplifyているのは、クラウドサービスを利用したアプリ開発用のJavaScriptライブラリと、フロントエンド用のReactJSです。関数を使用しようとすると、いくつかの問題があるようcurrentSession()です。Auth.siginIn()パッケージの Auth Module の機能を使用すると、私のセッションはセッションを保存していないようです。ユーザープールに設定した現在のテストユーザーでテストし、正常にサインインしました。使いたい理由はAuth.currentSession()機能は、アプリケーションの各ビューのセッションを確認することです。以下では、ユーザーがログインを確認した後、ダッシュボード ビューに送信して、コンポーネントのマウント後にセッションを確認しようとしたが、ユーザーが見つからないというエラーが返されたことがわかります。以下は私が使用する私のコードです。aws-amplify のウェブサイトにあるドキュメントを見ましたが、問題を特定できないようです。

注: setUserData および setAuthToken からの応答 (サインイン後のセッション応答) を格納するために Redux が使用されています。

ログイン.js

  handleSubmit = (event) => {
    event.preventDefault();
    Auth.signIn(this.state.sso, this.state.password)
    .then((res) => {
      this.props.authUser(true)
      this.props.setUserData(res.username)
      this.props.setAuthToken(res.Session)
    })
    .then(() => {
      this.props.history.push("/Dashboard")
    })
    //catches err
    .catch((e) => {
      console.log(e);
      alert(e.message)
      this.props.authUser(false)
    })
  }

ユーザーがログインしたら、ユーザーをダッシュ​​ボードにプッシュする必要があります。コンポーネントのライフサイクルで呼び出されたらcomponentDidMount()、現在のセッションをチェックして、まだセッション中かどうかを確認します。

ダッシュボード.js

componentDidMount(){
    debugger;
    console.log(Auth);
    Auth.currentSession().then((res) => {
      console.log(res);
    }).catch((e) => {
      alert(e)
    })


    this.props.toggleError(false);
    this.props.toggleNotify()
  }
4

1 に答える 1