{"id":19291,"date":"2020-02-24T16:00:15","date_gmt":"2020-02-24T16:00:15","guid":{"rendered":"https:\/\/marvel7077.wpengine.com\/?p=19291"},"modified":"2020-12-21T06:25:16","modified_gmt":"2020-12-21T06:25:16","slug":"rules-for-designing-sign-up-sign-in-journeys","status":"publish","type":"post","link":"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/","title":{"rendered":"23 Rules for Designing Sign-Up &#038; Sign-In Journeys"},"content":{"rendered":"<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Sign-up and sign in journeys have been there ever since the transactional eCommerce begin. But, after 20 years, we still tend to get that wrong. Most of the time, these are dictated by the platform of choice or the UX preference. Debates rage on, in the interweb, on whether a decision by an organization is correct, user friendly and complies with security practices.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The sign-in\/sign up step is a big hurdle the user has to cross to enjoy the services you are offering. A bad SI\/SU journey leads to large drop-offs and poor experience.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Today, we\u2019ll try to put all those to rest and create a set of simple rules that should be used in your sign up\/sign in journeys on all your products. We\u2019ll start with the simple sign-up and complicate affairs when we reach the sign-in in the middle of another action.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Rules for Sign-Up (or Registration)<\/h2>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">1. Ask for only the basic information you need to create the account<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">You only need a name, email and password to create an account. If you have a strong SMS marketing presence, a phone number would help \u2014 but don\u2019t force it. You can get it later.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">If your sign up form goes into more than 2 pages \u2014 you\u2019re gonna have a huge drop off.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">2. Mark what is required and group it together<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Every required field should be cleared marked. It doesn\u2019t really help to use * to indicate required, but marking things as (optional) is better than to keep it unmarked. The order should be required items first, followed by optional items.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"style=\"text-align: center;\"><img class=\"size-full\" title=\"\" alt=\"\" \/><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2020\/02\/1O01aZXEvuCcodOc4IYcmyw.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6580 size-full\" title=\"Sign up journey rule group fields that are required together\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2020\/02\/1O01aZXEvuCcodOc4IYcmyw.png\" alt=\"Proper field grouping and field identification\" width=\"1664\" height=\"1002\" \/><\/a>Proper field grouping and field identification<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">From an HTML standpoint, clearly indicate the field in the input (through the autocomplete standard \u2014 see <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/html.spec.whatwg.org\/multipage\/form-control-infrastructure.html#inappropriate-for-the-control\">here<\/a>), to help the browsers autofill the information.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">3. Indicate password policy, but only stop the common ones<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The rule should be to indicate the strength of the password, but if the password doesn\u2019t fall into the common category, don\u2019t stop the user from signing up. The rationale is simple \u2014 if they have to come up with a new password, they\u2019ll most likely forget it and the next time they want to login, they\u2019ll drop off.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">4. Implement inline field validation &amp; indicate errors onFocusOut<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The most hated of input forms are those that wait for you to fill up all your details and then show the errors in a list at the top of the form, during which time, the password you entered is gone (\u201csecurity\u201d).<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"style=\"text-align: center;\"><img class=\"size-full\" title=\"\" alt=\"\" \/><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2020\/02\/0dL3LIxIax8ItE8ro.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-6580\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2020\/02\/0dL3LIxIax8ItE8ro.png\" title=\"\" alt=\"\" \/><\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"style=\"text-align: left;\">Using errors which are human-friendly is a good way to ensure that people don\u2019t drop off.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Most inline form validation make the error of checking as I type. Here is the logic you should use:<\/p>\n<ol class=\"pageWrap pageWrap--s list list--ordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>Wait for an onFocusOut on the field<\/li>\n<li>Validate the field<\/li>\n<li>If error, indicate error, but do not focus back on the field. (don\u2019t break the users flow, in filling up the form)<\/li>\n<li>When the user focuses on the error field (and the field isn\u2019t empty), check at every onKeyUp. If the field is correct \u2014 turn the field green (but don\u2019t move the input box around with a message that shifts the input box).<\/li>\n<\/ol>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">This should stave off any ugliness with the validation.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">5. Don\u2019t block access to the account for unverified email<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Unless it is a business requirement, do not stop users from accessing their account just because they haven\u2019t clicked on the link you\u2019ve sent. This is especially true for eCommerce \u2014 there is no need for an eCommerce site to verify the email address. For online products, you can always restrict user-facing actions till an email is verified.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I\u2019ve found that services that offer 3\u20135 days to verify the email, tend to get a lot more drop offs. It is better to ask for verification <em>after<\/em> the user has entered the portal and wants to take some action.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">6. Don\u2019t just indicate that an account exists with the email \u2014 give options<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">If a user enters an email that already exists in your database, don\u2019t just tell the user that the email exists. That\u2019s a dead-end. Provide the reason and actions, the user can take:<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"style=\"text-align: center;\"><img class=\"size-full\" title=\"\" alt=\"\" \/><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2020\/02\/1SsbNkY1FVXpTBUP3Hloh2Q.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6580 size-full\" title=\"Sign-up journey give users an out for errors\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2020\/02\/1SsbNkY1FVXpTBUP3Hloh2Q.png\" alt=\"Give users an out for every error they get!\" width=\"1698\" height=\"1036\" \/><\/a>Give users an out for every error they get!<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The sites that directly take the user to the login page are horrible! The user was expecting something like a thank you for signing up and they\u2019re faced with another form. Terrible experience!<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">If possible, try to do an inline verification of the email. It saves the user the trouble of entering the rest of the fields.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><em>Security note<\/em>: I know that it is foolish to provide an API to the blackhatter to check which emails exist in your database, but if you are smart about it \u2014 using throttling or adding a device fingerprint layer to restrict the number of calls made, you are saving so many users the trouble of getting lost in the journey.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">7. Social logins should be the norm!<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I don\u2019t know why there aren\u2019t more sites offering a single identity sign-on? For simple signups like eCommerce or product trials, the facebook\/twitter\/google sign ups are the easiest to do. Within these, however, there are sub-rules you should follow:<\/p>\n<ol class=\"pageWrap pageWrap--s list list--ordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Coverage<br \/>\n<\/strong>Don\u2019t put a sign up with Linkedin on a transactional site. If your region has a popular SSO authority, like WeChat, provide that as an option.<\/li>\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Prioritize<br \/>\n<\/strong>If possible, prioritize the most popular sign-up method. Or push your most prefered method.<\/li>\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Merge<br \/>\n<\/strong>If a user signed up using email or some other SSO and is trying to SSO with another, accept it and allow the user to login (as long as the emails match).<\/li>\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Remind<br \/>\n<\/strong>If a user sign up using a SSO, <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">and<\/strong> is trying to sign up again through email, indicate the SSO used. In rule 6, we saw the option of reset password or login \u2014 additionally, a message that says, \u201cYou logged in using Facebook\u201d is a good way to remind the user.<\/li>\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Privacy<br \/>\n<\/strong>It is best to indicate that you\u2019ll use the SSO to only authorize the account and take only the required fields. And not post anything.<\/li>\n<\/ol>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">8. A tab key press should to go to the next field<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">As simple as it sounds, a tab sometimes doesn\u2019t lead the user to the next field. That\u2019s the expected behaviour. Test your form and see if some link or input assistance <a> tag gets highlighted. Use <\/a><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/www.w3.org\/TR\/1999\/REC-html401-19991224\/interact\/forms.html#adef-tabindex\">tab-index<\/a> attribute to help you out.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Here are some additional suggestions depending on your systems and requirements:<\/p>\n<ul class=\"pageWrap pageWrap--s list list--unordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Users email should be the user's identity to log in<\/strong><br \/>\nI\u2019m looking at you, sites with usernames. Sure, I like the username \u201cThorButOaks69\u201d today, but would I remember it, with its myriad combination of uppercase, lowercase and numbers? I remember my email, but not the username. Allow me to choose the username after I log in!<\/li>\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">After a successful sign up, send a welcome mail<\/strong><br \/>\nHere is what your welcome mail should contain \u2014 information about the site they\u2019ve signed up to, what they can do with the account and what awaits them in the future. If possible, add an email verification link just to keep your CRM team happy.<\/li>\n<\/ul>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"style=\"text-align: center;\">. . .<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Rules for Sign-In<\/h2>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">9. Apply inline validation for the email field<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">So many sites <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">do not<\/strong> apply email field validation (the standard regex one). Your system has the information that the email format is incorrect \u2014 indicate!<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">For a database lookup, it\u2019s a security gamble \u2014 the same security note from Rule 6 of Sign up applies.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">10. Reset password should carry the email into the new form<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">If your user has entered the email and you\u2019ve told him that the combination is incorrect, she should not have to type the email again in the password reset field. If possible, make the transition quick and simple \u2014 hide the password field and change the button to say, \u201cReset your password\u201d after the user has clicked on that option.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><img class=\"size-full\" title=\"\" alt=\"\" \/><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2020\/02\/1Z1sf3pYt5HMuCe3T5c1grg.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6580 size-full\" title=\"Sign-In Journeys reset password flow\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2020\/02\/1Z1sf3pYt5HMuCe3T5c1grg.gif\" alt=\"Smooth transition with email persisting\" width=\"1355\" height=\"643\" \/><\/a>Smooth transition with email persisting<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">11. Offer password reset on the third try<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">If a user tries to enter the password more than once, offer to reset the password with a single click. Don\u2019t make them click on another button.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><img class=\"size-full\" title=\"\" alt=\"\" \/><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2020\/02\/1bY84zradwye_EzkOD8r3Hg.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6580 size-full\" title=\"Sign-In Journeys offer password reset \" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2020\/02\/1bY84zradwye_EzkOD8r3Hg.png\" alt=\"\" width=\"1868\" height=\"1006\" \/><\/a><\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">12. Send a password reset link and not a system generated password<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">A system generated password adds a separate step in the reset password journey. The journey of reset password should be simple:<\/p>\n<ol class=\"pageWrap pageWrap--s list list--ordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>User opts for reset password<\/li>\n<li>User gets a mail with the password reset link<\/li>\n<li>User clicks on link<\/li>\n<li>User enters their password, twice<\/li>\n<li>User has access to the account<\/li>\n<\/ol>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">See how we jumped the login again with the password option? What are we trying to do with the login again step? Building muscle memory? Giving the autocomplete the opportunity to update the records? You have already verified the ownership of the account. You need not re-type the entire combination again!<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">This brings us to rule 13.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">13. Allow the password managers to capture the users login credentials, if the user wants<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Majority of the users are now on some password manager or the other. Only a few choose to still remember their email\/password combination for the hundred-odd sites they use. The password managers have evolved to even sense a reset password to update their vaults.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">14. On mobile apps, allow users to use their on-device authentication to login<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">If you have a mobile app, it would be ridiculous to force to use the complicated email\/password or SSO logins. Most devices have exposed their authentication options (like fingerprint ID or faceID) to let apps use that as the authentication logic. Here is how the flow should go:<\/p>\n<ol class=\"pageWrap pageWrap--s list list--ordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>After a successful login, prompt the user to use their ondevice authentication for subsequent logins. Also provide the user the option to not show the message again.<\/li>\n<li>If the user chooses to use the auth, go ahead and complete the flow on getting the auth.<\/li>\n<li>At the next login form, provide the option of device auth as a SSO, or pop up a modal in their face with the authentication request.<\/li>\n<\/ol>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">15. SSO as a sign-in option<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Again, should be a norm. Standard rules in Rule 7 should apply, with the following extensions:<\/p>\n<ol class=\"pageWrap pageWrap--s list list--ordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>If a user is trying to SSO with an email that doesn\u2019t exist in the system, indicate the same and ask if the user wants to create an account with that email.<\/li>\n<li>If a user is trying to SSO with an email that exists, authenticate and add the SSO to the account. On successful sign-in, inform the user of the same.<\/li>\n<li>Try not to go more than 3 SSO options \u2014 any more will confuse the user. I do not remember if I used Facebook or Google or Twitter or whatever.<\/li>\n<li>Mobile App SSOs \u2014 <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">DO NOT <\/strong>open an in-app browser with the facebook\/google page with sign-in option to authenticate. Most users have the app \u2014 use the Facebook\/Google app to authenticate. I don\u2019t want to enter a username\/password combination just to save me from another email\/password combination entry.<\/li>\n<\/ol>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">16. Two-step authentication should be a norm for sites that contain sensitive and payment information<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">This isn\u2019t for sites that store tokens of credit cards, though it would be good if you enable it. This is for those sites that store money through credit\/wallet balance. Again, not all your users have credit\/wallet. Enforce the two-step authentication for those with something to lose. E.g. if I have just signed up and have no credit\/wallet balance, there is no need for me to have a two-step right away. Contextualize your enforcement policy.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">On two-step, best combinations are:<\/p>\n<ol class=\"pageWrap pageWrap--s list list--ordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>Email + Phone<\/li>\n<li>Email + Email<\/li>\n<li>Email + Push Notification<\/li>\n<\/ol>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The fastest in my experience is the email + push. It <em>always<\/em> works. And keep it simple. Microsoft authenticator adds a really silly layer of choosing a particular number in a list of numbers. If I have access to both devices (the login device &amp; the verification device), I just need to tap on the approve message. Don\u2019t make me solve a sudoku puzzle!<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">17. Understand the user's cognitive load for deeper journeys and design \u2018outs\u2019 for errors<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">As the authentication journeys become complicated, fewer users will go down certain paths. Provide a way out if the user ends up in a loop. Give them the option to fall back to the old-faithful method of email\/password.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">18. Persistent logins should be the norm for non-sensitive sites<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Unless your site holds sensitive information, allow persistent logins. This is especially true for eCommerce sites. Persistent logins allow the user to experience the site and the actions they\u2019ve taken. You are a UX criminal if you auto-logout users after a certain time. Sessions may expire, but let the users actions (like items added to cart) remain. You can restrict access to personal information with a password prompt, outside of session expiry. Amazon does this beautifully by keeping you partially logged in and asking for authentication only when you need to access personal information.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">If you have a mobile app and you log me out after a day, shame on you. Mobile apps need to have permanent logins (standard exceptions apply). You can be assured that no public devices are used to login to the app.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"style=\"text-align: center;\">. . .<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Rules for In-Journey Sign-Ins<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Sometimes, you need to get the user to login to simplify the subsequent steps of the journey. We\u2019ll focus on eCommerce journeys of checkout, check order status and abandoned cart. But, before that, if you have a mobile app, make sure that all links from emails\/SMS are deep-linked. I don\u2019t want to experience a silly browser journey on a mobile device that has an app with me logged-in.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">19. Don\u2019t force the user to log in when, without login, the user can complete the journey<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">During the checkout journey, the first step is usually the part where the user logs-in or provides an email. Visually prioritize the guest checkout option. The flow can be (for a non-logged in user with account):<\/p>\n<ol class=\"pageWrap pageWrap--s list list--ordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>Ask user for their email<\/li>\n<li>Check if the email exists in the system, while taking the user to the next step. If the user has an account, prompt them to login, with the message saying that it would be simpler if they do so (check if the account has a shipping address and payment card associated).<br \/>\n<em>Note \u2014 we\u2019re not showing the message on the same step. The user expectation is to move forward \u2014 meet it.<\/em><\/li>\n<li>If the user chooses to login, open a modal with the form and SSO options. Since you already know if the user used SSO the last time, position the SSO option and the form. The order should be:<\/li>\n<\/ol>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"style=\"text-align: center;\"><img class=\"size-full\" title=\"\" alt=\"\" \/><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2020\/02\/14g_oZfrSCKNRPuTk2AizYg.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6580 size-full\" title=\"in journey Sign-Ins order of options in modal\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2020\/02\/14g_oZfrSCKNRPuTk2AizYg.png\" alt=\"\" width=\"1726\" height=\"1064\" \/><\/a>Order of options in an in-journey sign in modal<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Note: There is no forgot password. User basically goes through with it or continues.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">4. If the login attempts are unsuccessful, politely inform the user to not worry and that you\u2019ll tie the transaction to their account (and do it!). They have to be brought back smoothly \u2014 make sure <em>the user <\/em>closes the modal on their own. If you close the modal, on behalf of the user, that\u2019ll piss them off.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">20.Upon login, if the user has items from a previous session, OVERWRITE IT!<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Imagine if you were at the grocers, at the checkout line and when you provided your loyalty card, the cashier added 4 more items to your bill that you added to your basket the last time you were there? Wouldn\u2019t you hate it?<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Merging session is fine when the user logs in before jumping into the checkout journey. Then again, you shouldn\u2019t just merge \u2014 identify them separately in the cart and ask if the user wants to add them to the new cart they have &amp; give an option to \u2018Save for later\u2019. Your objective is to reduce the number of decisions the customer has to make before going into the checkout journey.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">If you find that there are items in the users previous cart during the checkout flow, display them on the thank you page, with a simple message \u2014 \u201cyou had these items in your previous cart, do you want to buy them now?\u201d. At that point, add those items to the new cart and take them straight to the review page \u2014 where their previous choices (like shipping address, payment type has been selected) and the basket total is shown. They should be able to select the items they want to buy and save for later. Simplify the journey.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">21. Prompt account creation after the primary journey has been completed<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">If a user doesn\u2019t have an account, it\u2019s best to ask them to create a password for their account on the Order Confirmation\/Thank you page. Don\u2019t ask for repeated information. You already have all the information you need to create the account. Just the password is missing.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">22. Order status links should not ask for logins<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">There should be two ways a user can check their order status:<\/p>\n<ol class=\"pageWrap pageWrap--s list list--ordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>Link in the email \u2014 Order status link should be sent with every order confirmation email and order update mail<\/li>\n<li>Form on site that allows for email + order number combination<\/li>\n<\/ol>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Additional information about the order can be kept behind a login prompt. Make sure that after login, the user goes the page that they were intending to go to\u2026<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">23. Abandoned Carts links should not prompt for login<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Abandoned cart flows are complicated \u2014 user accessing the link from a browser that they\u2019re already logged-in, or session recreation using SSID in the URL \u2014 things get really complicated from a technical standpoint.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Simplify the Abandoned Cart journey by focusing on one product and get the user to transact that item. If they have items in the cart, show those as additional products they can add. Remember to contextualize your user journeys.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"style=\"text-align: center;\">. . .<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Most users have come to expect the above as a given. As product managers, we have constraints on the technological wiggle room we get to implement these, but I can assure you, implementing these changes will give your site\/app a UX boost and increase your conversion. Try A\/B on most of these rules and see how your users react.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Thank you for reading!<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Originally posted on <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/uxdesign.cc\/22-rules-for-user-sign-up-sign-in-journeys-e0e863cba40a\">Rameez's Medium<\/a> page.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">Further reading:<\/h3>\n<ul class=\"pageWrap pageWrap--s list list--unordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li class=\"LinkSuggestion__LinkSuggestionWrapper-sc-1mdih4x-0 bRwwZe\"><a class=\"link link--blue fontWeight-4\"class=\"LinkSuggestion__Link-sc-1mdih4x-2 dcwLhi\" href=\"https:\/\/shopjessicabuckley.com\/blog\/easy-api-hacks-for-managing-large-design-teams-in-marvel-workspaces\/\" target=\"_blank\" rel=\"noopener noreferrer\">Easy API Hacks for Managing Large Design Teams in Marvel<\/a><\/li>\n<li class=\"LinkSuggestion__LinkSuggestionWrapper-sc-1mdih4x-0 bRwwZe\"><a class=\"link link--blue fontWeight-4\"class=\"LinkSuggestion__Link-sc-1mdih4x-2 dcwLhi\" href=\"https:\/\/shopjessicabuckley.com\/blog\/wireframing-your-web-application\/\" target=\"_blank\" rel=\"noopener noreferrer\">Wireframing your web application<\/a><\/li>\n<li class=\"LinkSuggestion__LinkSuggestionWrapper-sc-1mdih4x-0 bRwwZe\"><a class=\"link link--blue fontWeight-4\"class=\"LinkSuggestion__Link-sc-1mdih4x-2 dcwLhi\" href=\"https:\/\/shopjessicabuckley.com\/blog\/ux-design-best-practices-improving-seo-rankings\/\" target=\"_blank\" rel=\"noopener noreferrer\">UX Design Best Practices for Improving SEO Rankings<\/a><\/li>\n<li class=\"LinkSuggestion__LinkSuggestionWrapper-sc-1mdih4x-0 bRwwZe\"><a class=\"link link--blue fontWeight-4\"class=\"LinkSuggestion__Link-sc-1mdih4x-2 dcwLhi\" href=\"https:\/\/shopjessicabuckley.com\/blog\/guide-finding-free-paid-participants-usability-testing\/\" target=\"_blank\" rel=\"noopener noreferrer\">A Guide to Finding Free and Paid Participants for Usability Testing<\/a><\/li>\n<li class=\"LinkSuggestion__LinkSuggestionWrapper-sc-1mdih4x-0 bRwwZe\"><a class=\"link link--blue fontWeight-4\"class=\"LinkSuggestion__Link-sc-1mdih4x-2 dcwLhi\" href=\"https:\/\/shopjessicabuckley.com\/blog\/this-months-most-wanted\/\" target=\"_blank\" rel=\"noopener noreferrer\">Support Sessions: This Month's Most Wanted<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Sign-up and sign in journeys have been there ever since the transactional eCommerce begin. But, after 20 years, we still tend to get that wrong. Most of the time, these are dictated by the platform of choice or the UX preference. Debates rage on, in the interweb, on whether a decision by an organization is correct, user friendly and complies&#8230; <a class=\"link link--blue fontWeight-4\" href=\"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/\">Read More &#65515;<\/a><\/p>\n","protected":false},"author":323,"featured_media":19314,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[499],"tags":[],"class_list":["post-19291","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ux"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<meta name=\"description\" content=\"Here are a set of simple rules that will give your users the best experience on their sign-in journeys when signing up or signing in on all of your projects.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"23 Rules for Designing Sign-Up &amp; Sign-In Journeys | Marvel Blog\" \/>\n<meta property=\"og:description\" content=\"Here are a set of simple rules that will give your users the best experience on their sign-in journeys when signing up or signing in on all of your projects.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/\" \/>\n<meta property=\"og:site_name\" content=\"Marvel Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/marvelapp\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-24T16:00:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-12-21T06:25:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/shopjessicabuckley.com\/wp-content\/uploads\/2020\/02\/56.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"700\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@marvelapp\" \/>\n<meta name=\"twitter:site\" content=\"@marvelapp\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"12 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/#organization\",\"name\":\"Marvel\",\"url\":\"https:\/\/shopjessicabuckley.com\/blog\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/marvelapp\",\"https:\/\/www.instagram.com\/marvelapp\/\",\"https:\/\/www.linkedin.com\/company\/marvel-app\/\",\"https:\/\/twitter.com\/marvelapp\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/#logo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/shopjessicabuckley.com\/wp-content\/uploads\/2018\/06\/Logo-Light.png\",\"width\":1605,\"height\":1130,\"caption\":\"Marvel\"},\"image\":{\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/#website\",\"url\":\"https:\/\/shopjessicabuckley.com\/blog\/\",\"name\":\"Marvel Blog\",\"description\":\"Ideas and words on user experience, design, collaboration and more\",\"publisher\":{\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/shopjessicabuckley.com\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/#primaryimage\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/shopjessicabuckley.com\/wp-content\/uploads\/2020\/02\/56.png\",\"width\":1600,\"height\":700,\"caption\":\"22 Rules for Designing Sign-Up & Sign-In Journeys\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/#webpage\",\"url\":\"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/\",\"name\":\"23 Rules for Designing Sign-Up & Sign-In Journeys | Marvel Blog\",\"isPartOf\":{\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/#primaryimage\"},\"datePublished\":\"2020-02-24T16:00:15+00:00\",\"dateModified\":\"2020-12-21T06:25:16+00:00\",\"description\":\"Here are a set of simple rules that will give your users the best experience on their sign-in journeys when signing up or signing in on all of your projects.\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/\"]}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/#webpage\"},\"author\":{\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/#\/schema\/person\/f6755a43aefb42f84f3dbcc411661683\"},\"headline\":\"23 Rules for Designing Sign-Up &#038; Sign-In Journeys\",\"datePublished\":\"2020-02-24T16:00:15+00:00\",\"dateModified\":\"2020-12-21T06:25:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/#webpage\"},\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/#primaryimage\"},\"articleSection\":\"User Experience\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/shopjessicabuckley.com\/blog\/rules-for-designing-sign-up-sign-in-journeys\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/#\/schema\/person\/f6755a43aefb42f84f3dbcc411661683\",\"name\":\"Rameez Kakodker\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/shopjessicabuckley.com\/blog\/#personlogo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/deb8b5156870b002573b0845f65aa89da40b0fe2e6d3afbc6fb0c79d5d1c3985?s=96&d=mm&r=g\",\"caption\":\"Rameez Kakodker\"},\"description\":\"Senior Product Manager simplifying complexity for a living | Product | Design | Data | Find me at rkakodker.com\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/posts\/19291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/users\/323"}],"replies":[{"embeddable":true,"href":"https:\/\/shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/comments?post=19291"}],"version-history":[{"count":0,"href":"https:\/\/shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/posts\/19291\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/media\/19314"}],"wp:attachment":[{"href":"https:\/\/shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/media?parent=19291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/categories?post=19291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shopjessicabuckley.com\/blog\/wp-json\/wp\/v2\/tags?post=19291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}