signIn method Null safety
로그인을 시도합니다.
Implementation
Future<bool> signIn(String username, String password) async {
try {
LogManager().addLog("로그인 요청", screen: runtimeType.toString());
SignInResult signInResult = await Amplify.Auth.signIn(username: username, password: password);
if (signInResult.isSignedIn) {
/// 로그인 성공
LogManager().addLog("로그인 성공", screen: runtimeType.toString());
Navigator.of(context, rootNavigator: true).popUntil((route) => !route.settings.name!.startsWith(PopupScreen.routeName));
Navigator.of(context, rootNavigator: true).pushReplacementNamed(FarmLoadingScreen.routeName);
registerNotificationToken();
return true;
}
String content = "No Message";
switch (signInResult.nextStep?.signInStep) {
case "CONFIRM_SIGN_IN_WITH_NEW_PASSWORD":
// 새 비밀번호 필요할 때
// 현재 시나리오상 걸리는 일이 있는지 모르겠음. Amplify Studio에서 계정을 생성한 뒤 로그인하면 이 메세지가 뜸.
content = "login step CONFIRM_SIGN_IN_WITH_NEW_PASSWORD";
break;
default:
content = "알수없는 에러가 발생했습니다.";
break;
}
throw content;
} catch (e) {
LogManager().addLog("로그인 실패", screen: runtimeType.toString());
LogManager().addLog(e.toString(), screen: runtimeType.toString());
rethrow;
}
}