`self.user` being `None` caused some issues here and below.  These are all small tweaks to take care of it.

Note that it's OK to use the same `ANONYMOUS_USER_HEXID` because device information should be part of the signature as well.  Right.... RIGHT??? (suddenly not sure).  If not, then adding the device information in here would be critical.