Ruby On Rails Lesson
Sign In, Sign Out
Now that new users can sign up for our site (Chapter 7), it’s time to give registered users the ability to sign in and sign out. This will allow us to add customizations based on signin status and based on the identity of the current user. For example, in this chapter we’ll update the site header with signin/signout links and a profile link. In Chapter 10, we’ll use the identity of a signed-in user to create microposts associated with that user, and in Chapter 11 we’ll allow the current user to follow other users of the application (thereby receiving a feed of their microposts).
Having users sign in will also allow us to implement a security model, restricting access to particular pages based on the identity of the signed-in user. For instance, as we’ll see in Chapter 9, only signed-in users will be able to access the page used to edit user information. The signin system will also make possible special privileges for administrative users, such as the ability (also introduced in Chapter 9) to delete users from the database.
After implementing the core authentication machinery, we’ll take a short detour to investigate Cucumber, a popular system for behavior-driven development (Section 8.3). In particular, we’ll re-implement a couple of the RSpec integration tests in Cucumber to see how the two methods compare.
As in previous chapters, we’ll do our work on a topic branch and merge in the changes at the end: