[DEPRECATED] Signing In a User Manually
Warning
This article series promotes UserProfiles and Forms, which are deprecated. We decided to reduce the learning curve by promoting explicit implementation via Liquid, Pages and GraphQL, instead of built-in features, which add magic into the mix increasing the learning curve and making debugging harder. Please refer to our Get Started to read up-to date articles, including User Authentication
This guide will help you create an authentication form for users to sign in manually.
Requirements
To follow the steps in this tutorial, you should be familiar with the required directory structure for your codebase, and understand the concept of pages and users.
Steps
Signing in a user manually is a two-step process:
Step 1: Create authentication form
app/forms/sign_in.liquid
---
name: sign_in
resource: Session
fields:
email:
password:
---
{% form %}
<label for="email">Email</label>
<input name="{{ form.fields.email.name }}" value="{{ form.fields.email.value }}" id="email" type="email">
<label for="password">Password</label>
<input name="{{ form.fields.password.name }}" id="password" type="password">
{% if form.errors.password %}
<p>{{ form.errors.password }}</p>
{% endif %}
<button>Log In</button>
{% endform %}
Step 2: Create sign in page
app/views/pages/sign_in.liquid
---
slug: sign-in
---
<h2>Sign in </h2>
{% include_form 'sign_in' %}
<p>New user? Create <a href="/developer/sign-up"> new developer account</a> or <a href="/client/sign-up">new client account</a></p>
Note
To set an expiration for user sessions, use the "timeout_in_minutes": 0,
attribute in the Instance configuration settings JSON as described in the Updating Instance Configuration tutorial. If you set the attribute to 15, for example, all users will get logged out automatically after 15 minutes of inactivity.
Next steps
Congratulations! You created a sign in page for users to sign in manually. Now you can learn about signing in a user automatically after sign up: