export const meta = {
  title: `CLI Default Auth Signup Behavior`,
  description: ``,
};

## Who is affected? 

This article is relevant to you if you have an Auth resource created using  `amplify add auth`  with CLI versions 5.2.0 - 5.6.0.

If your Auth resource was created with   `amplify add auth` using Amplify CLI Version 5.1.2 or earlier, or with Amplify CLI version 6.0.0 or later, you are not affected and you can ignore the rest of this article. 


## What Changed

### **The *Original* CLI  `amplify add auth` Behavior (versions prior to 5.2.0)** 

Prior to CLI version 5.2.0, developers could choose **one** of these options:

```
How do you want users to be able to sign in? (Use the arrow keys)
>Email
 Username
 Phone Number
 Email or Phone Number
```

### **The *Changed* CLI `amplify add auth` Behavior (CLI versions 5.2.0 - 5.6.0)**

In the CLI release 5.2.0 (July 27, 2021), additional functionality was added for developers configuring Auth. 
Beginning in CLI version 5.2.0, developers could choose **any** of these options

```
How do you want users to be able to sign in?
[x] Email Address
[ ] Phone Number
[ ] Username
```

### **Back to the *Original* Behavior (CLI version 6.0.0 and later)**

Beginning in CLI v6.0.0, the original behavior is reinstated and developers can once again choose **one** of these options:

```
How do you want users to be able to sign in? (Use the arrow keys)
>Email
 Username
 Phone Number
 Email or Phone Number
```

## What is the impact of this change

If you configured the Auth Resource with the changed `amplify add auth` behavior (CLI v5.2 - v5.6) you will need to use the changed  `amplify add auth` behavior whenever you run `amplify add auth` in order to get a compatible configuration. You can use the changed `amplify add auth` behavior in CLI v6.0.0 by enabling the "**auth.forceAliasAttributes**" feature flag.

The following code segment demonstrates how Auth.signup() can be used with the Auth resource created with CLI versions 5.2.0 - 5.6.0:

```ts
const username = getGUID(); 
const {user} = await Auth.signUp({
      username,
      password: "your-secure-password",
      attributes: {
        email: "youremail@yourdomain.com",
      },
});
await Auth.confirmSignUp(username, code);
await Auth.signIn("youremail@yourdomain.com", "your-secure-password");
```

The following code segment demonstrates how Auth.signup() can be used with the Auth resource created with CLI versions 6.0 and later (this segment would not work for Auth configured with CLI 5.2.0 - 5.6.0):

```ts
const {user} = await Auth.signUp({
      username: "youremail@yourdomain.com",
      password: "your-secure-password",
      attributes: {
        email: "youremail@yourdomain.com", 
      }
});
```



