🔑
Cognito で Userpool が複数ある時の Amplify.configure の使い方
諸事情で Userpool が複数あるのですが、下記のように Amplify.configure は一つの Userpool の設定しか受け取りません。
export const configure = {
Auth: {
region: process.env.AMPLIFY_CONFIG_REGION,
userPoolId: process.env.AMPLIFY_CONFIG_USER_POOL_ID,
userPoolWebClientId: process.env.AMPLIFY_CONFIG_USER_POOL_WEB_CLIENT_ID,
},
};
Amplify.configure(configure);
複数ある場合一体どうすればいいのでしょうか…。
解決策
こんな感じで login 時に一つ目の Userpool で実行、エラーが出たら二つ目の Userpool の設定を Amplify.configure するようにしました。
export const signIn: (username: string, password: string) => Promise<any> = (
username,
password
) => {
Amplify.configure(configure1);
return Auth.signIn(username, password)
.then(Promise.resolve)
.catch(() => {
Amplify.configure(configure2);
return Auth.signIn(username, password);
});
};
若干ゴリ押し感はありますがちゃんと動いてくれました。
ニッチケースだとは思いますがご参考ください!
Discussion