https://oauth.jp/blog/2013/09/26/rails-session-cookie/
結論を書くと、cookieセッションでもサーバから無効化はできる。
cookieの中身はサーバで暗号化していて、クライアントからは復号ができないものとする。
こういう前提であれば、サーバからセッションに「パスワードハッシュ値を種としたハッシュ値」をセッションに埋め込んでおく。リクエストを受け取るたびに、セッション内のハッシュ値をログインユーザに対して検証をすれば、パスワード変更以前のセッションなのかは判定ができる。
1ユーザがパスワードを変更したら全部のセッションが無効になるので、セッションを1つずつ無効にすることはできない。この制約をクリアできるなら、サーバの暗号キーが漏れない限りはcookieセッションへのリスクってほとんどないと思うんだよね。