mastodon/app
Claire 6da135a493
Fix reviving revoked sessions and invalidating login ()
Up until now, we have used Devise's Rememberable mechanism to re-log users
after the end of their browser sessions. This mechanism relies on a signed
cookie containing a token. That token was stored on the user's record,
meaning it was shared across all logged in browsers, meaning truly revoking
a browser's ability to auto-log-in involves revoking the token itself, and
revoking access from *all* logged-in browsers.

We had a session mechanism that dynamically checks whether a user's session
has been disabled, and would log out the user if so. However, this would only
clear a session being actively used, and a new one could be respawned with
the `remember_user_token` cookie.

In practice, this caused two issues:
- sessions could be revived after being closed from /auth/edit (security issue)
- auto-log-in would be disabled for *all* browsers after logging out from one
  of them

This PR removes the `remember_token` mechanism and treats the `_session_id`
cookie/token as a browser-specific `remember_token`, fixing both issues.
..
chewy Change `tootctl search deploy` algorithm ()
controllers Fix reviving revoked sessions and invalidating login ()
helpers Add Northern Kurdish locale as requested by translator. It already has a project started on Crowdin. ()
javascript ran `yarn manage:translations en` ()
lib Add support for structured data and more OpenGraph tags to link cards ()
mailers Prepare Mastodon for Rails 6 ()
models Fix reviving revoked sessions and invalidating login ()
policies Add ability to skip sign-in token authentication for specific users ()
presenters Add graphs and retention metrics to admin dashboard ()
serializers Add graphs and retention metrics to admin dashboard ()
services Add support for structured data and more OpenGraph tags to link cards ()
validators Minor memory optimizations ()
views Add graphs and retention metrics to admin dashboard ()
workers Fix AccountNote not having a maximum length ()