# Passwords

## Passwords

Passwords are handled completely by Bubble and built into every application; you don't need to setup anything for them to work.  Passwords are stored "salted + encrypted" by Bubble, and can never be viewed in the Bubble editor.  For more information on Bubble's privacy and security practices, please refer to this [thread](https://forum.bubble.is/t/josh-request-for-a-security-q-a-guide/42942/18?u=fayewatson) in the Bubble forum.

### How to Define Your App's Password Policy

By default, the application has a 7 character minimum password policy.  If you'd like to keep that the way it is, you can skip this section; you won't need to change anything related to passwords.  &#x20;

#### How to Change the Password Policy in the Editor

1. In the editor, go to **Settings --> General**:  <br>

   <img src="https://1788973256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L8uq1TOYNrDiHA5baDk%2F-LWETNg3yPAavjp31Lrz%2F-LWEUznsoUVF73wO_yQd%2FPasswordPolicy.png?alt=media&#x26;token=d98f168d-1279-4ace-a649-d9ec8e59a073" alt="" data-size="original"><br>
2. **Customize** the "Password minimum length", "Require a number", "Require a capital letter", and "Require a non-alphanumeric character" options to reflect your desired password policy.&#x20;

{% hint style="info" %}
Write down these new password requirements because you will need them for the following steps. 🙂
{% endhint %}

#### Change How the Password Requirements are Displayed to New Users

When a new User is in the process of signing up, and begins typing their desired password, the app will show the Current User if their password meets/doesn't meet the app's requirements.  Since the password must be at least 7 characters long, the app will tell the Current User if their password is at least 7 characters. It will also show the strength of their password (as shown in the video below):

{% embed url="<https://www.useloom.com/share/88920e5eee4542d59b27567f2fe032d0>" %}

{% hint style="info" %}
**Password Strength** is determined by Bubble.  You can read more about this feature [here](https://forum.bubble.is/t/new-feature-password-strength-on-inputs/45872).
{% endhint %}

If you make changes to the password policy character minimum requirements, the "✅**7 characters**" or "❌**7 characters**" text will need to be adjusted so that Users will know whether or not their password meets your new password policy requirements.  These texts are shown in three places throughout the app:

#### **Within the `Login/Signup Popup` reusable element:**

1. The `Group Password Requirements Container` element contains the "✅7 characters" or "❌7 characters" text that is hidden by default within this popup.  Make that `Group Password Requirements Container`element visible in the editor and click on the "Conditional" tab. <br>
2. **Change the conditional of the** **second conditional** below to make the Group visible once the password meet's your app's requirements:

   ![](https://1788973256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L8uq1TOYNrDiHA5baDk%2F-LNwaPOQhs4K24EKQeJN%2F-LNwnMyCvDBAYEPJdDru%2Fimage.png?alt=media\&token=0a23116a-a5d4-46bc-96e0-611e1045975b)<br>
3. Change the formatting and conditional of the  `Text "X" Characters Minimum` element within the group, so that it reflects your password policy:

![](https://1788973256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L8uq1TOYNrDiHA5baDk%2F-LTu3XmWNLDaLMtobb8Y%2F-LTu5UkingFbalqc4byF%2FX_Characters_Minimum.png?alt=media\&token=5d2b909e-a039-4c27-8bee-3f77443a417f)

4\. Change the `Text: "X Characters Minimum"` element's conditional to reflect your new password policy:

![](https://1788973256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L8uq1TOYNrDiHA5baDk%2F-LTu3XmWNLDaLMtobb8Y%2F-LTu7GfY6abeEnHnEIGr%2FX_Characters_Minimum_Conditionals.png?alt=media\&token=3a9bdea3-0857-4b3d-aa15-c9c01d1dc584)

#### **Within the `Group Reset Your Password Container` element on the reset\_pw page:**&#x20;

The reset\_pw page also contains a group and text element which become visible to the Current User when they are reseting their password.&#x20;

1. The `Group Password Requirements Container` element contains the "✅7 characters" or "❌7 characters" text that is hidden by default within this group.  Make the `Group Password Requirements Container`element visible in the editor and go to its conditional formatting:<br>
2. Change the conditional formatting of the **second conditional below** to make the group visible once the password meets your app's requirements.<br>

![](https://1788973256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L8uq1TOYNrDiHA5baDk%2F-LTu3XmWNLDaLMtobb8Y%2F-LTu83_3dGzSHT1GcDsa%2FGroup_Conditional.png?alt=media\&token=5645acf4-6625-41ab-ace5-ecefe4309f74)

There is a second 'password checker text/group' element beneath the "Re-type Password" input.  The `Group Passwords Must Match Container` element's second conditional statement should also be changed to reflect your app's password policy:

![](https://1788973256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L8uq1TOYNrDiHA5baDk%2F-LTu3XmWNLDaLMtobb8Y%2F-LTu9lrNq0-a2sW4VIBk%2FMatch_Conditional.png?alt=media\&token=f09701b4-fe71-4d81-b7ac-f6eddd067b27)

#### **Within the `Popup Change Password` element on the account page:**

1. The `Group Password Requirements Container` element contains the "✅7 characters" or "❌7 characters" text that is hidden by default within this popup.  Make that `Group Password Requirements Container`element visible in the editor and click on the "Conditional" tab. <br>
2. **Change the conditional of the** **second conditional** below to make the group visible once the password meet's your app's requirements: &#x20;

   <img src="https://1788973256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L8uq1TOYNrDiHA5baDk%2F-LWtiljup1Gfp1yNM6xQ%2F-LWtjZ698UZL3me2J6Rx%2FPasswordRequirementsPopupChangePassword.png?alt=media&#x26;token=96689296-e0f0-482c-8b92-5722931ad686" alt="" data-size="original">

   <br>
3. Change the formatting and conditional of the  `Text "X" Characters Minimum` element within the group, so that it reflects your password policy:

   <img src="https://1788973256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L8uq1TOYNrDiHA5baDk%2F-LWtiljup1Gfp1yNM6xQ%2F-LWtjBfUlcHZEtxznvSR%2FCharacterMinimumsChangePasswordPolicy.png?alt=media&#x26;token=74d2cb9a-bd5c-4abe-9074-6ed846adf105" alt="" data-size="original">

4\. Change the text element's conditional to reflect your new password policy:

![](https://1788973256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L8uq1TOYNrDiHA5baDk%2F-LWtiljup1Gfp1yNM6xQ%2F-LWtjTcb5gkDvvUD7LB-%2FChangePasswordTextConditional.png?alt=media\&token=f7e487bf-0670-4708-b916-17b606868d34)

#### **Within the `Group Change Password Container` element on the change\_pass page:**

1. The `Group Password Requirements Container` element contains the "✅7 characters" or "❌7 characters" text that is hidden by default within this popup.  Make that `Group Password Requirements Container`element visible in the editor and click on the "Conditional" tab. <br>
2. **Change the conditional of the** **second conditional** below to make the Group visible once the password meet's your app's requirements:  &#x20;

   <img src="https://1788973256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L8uq1TOYNrDiHA5baDk%2F-LWtmcCIWU9OfBIaEOTT%2F-LWtml_YmRQEYgMQGcY5%2FChangePassPageGroupContainer.png?alt=media&#x26;token=2c42156e-4165-4dc6-b1e5-caabd43138a4" alt="" data-size="original"><br>
3. Change the formatting and conditional of the  `Text "X" Characters Minimum` element within the group, so that it reflects your password policy:

   <img src="https://1788973256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L8uq1TOYNrDiHA5baDk%2F-LWtmcCIWU9OfBIaEOTT%2F-LWtn0JGyVqJZkxqOhJw%2FTextPassRequirementsChangePass.png?alt=media&#x26;token=7922a148-7acd-44d3-b81d-5ae30a9612c3" alt="" data-size="original">

4\. Change the text element's conditional to reflect your new password policy:

![](https://1788973256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L8uq1TOYNrDiHA5baDk%2F-LWtmcCIWU9OfBIaEOTT%2F-LWtnD2DQ1GlezKOzgne%2FTextConditionalChangePassPage.png?alt=media\&token=872ef98e-5c45-46b6-8ace-909f0f3436fc)

##
