This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class RegisterController extends BaseController { | |
Future<void> registerOrLogin(String phone) async { | |
Map<String, String> userAttributes = {'phone_number': phone, 'email': "ignored@ignored.com"}; | |
try { | |
SignUpResult result = await Amplify.Auth.signUp( | |
username: phone, | |
password: "ThisIsIgnored!", | |
options: CognitoSignUpOptions(userAttributes: userAttributes)); | |
Fimber.d("isSignUpComplete: ${result.isSignUpComplete}"); | |
} on UsernameExistsException catch (_) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
functions: | |
.... | |
#### COGNITO TRIGGERS | |
cognitoCreateAuthChallange: | |
handler: src/handlers/auth.create_auth_challange | |
events: | |
- cognitoUserPool: | |
pool: ${self:provider.environment.COGNITO_USER_POOL_NAME} | |
existing: true | |
trigger: CreateAuthChallenge |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def define_auth_challange(event, context): | |
logger.info('define_auth_challange incoming event: ', event) | |
session_len = len(event['request']['session']) | |
last_session_index = session_len - 1 | |
# The first auth request for CUSTOM_CHALLENGE from the AWSMobileClient (in iOS native app) actually comes in as an "SRP_A" challenge (BUG in AWS iOS SDK), so switch to CUSTOM_CHALLENGE and clear session. | |
if event['request']['session'] and session_len > 0 and event['request']['session'][last_session_index]['challengeName'] == "SRP_A": | |
event['request']['session'] = [] | |
event['response']['issueTokens'] = False | |
event['response']['failAuthentication'] = False | |
event['response']['challengeName'] = 'CUSTOM_CHALLENGE' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def verify_auth_challenge(event, context): | |
logger.info('RECEIVED Event: ', event) | |
expectedAnswer = event['request']['privateChallengeParameters']['passCode'] | |
if event['request']['challengeAnswer'] == expectedAnswer: | |
event['response']['answerCorrect'] = True | |
else: | |
event['response']['answerCorrect'] = False |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def create_auth_challange(event, context): | |
logger.info('create_auth_challange incoming event: ', event) | |
phone = event['request']['userAttributes']['phone_number'] | |
if phone == "+000000000000": | |
pass_code = "111111" | |
else: | |
pass_code = ''.join(["{}".format(randint(0, 9)) | |
for num in range(0, 6)]) | |
send_sms_with_external_provider(pass_Code) # This you replace with your own send sms API call |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def pre_signup(event, context): | |
logger.info('RECEIVED Event: ', event) | |
event['response']['autoConfirmUser'] = True | |
event['response']['autoVerifyPhone'] = True | |
return event |