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()
}