Then you’d use the opaque ID to track them until they login, then merge data from that session into a user.
Consider this scearnio
Your extension is a game.
You let everyone play level 1 of the game.
You save their progress against their opaqueID (if logged out) or userID if logged in
Then at the end of level 1 you ask then to login to the game
Then you copy/merge the data from a logged out session to a logged in userID. (In case they were logged in logged out played level 1 and then logged in again)
Alternatively, require the user to login before doing anything