87e46130

By: Michael Lynch <git@mtlynch.io>

Consume magic login tokens atomically

Move successful token consumption into a conditional UPDATE so SQLite enforces the unused and unexpired token invariant in the write operation. Keep the follow-up lookup only to preserve distinct error messages for rejected tokens.