How to verify the signature of a user who has not yet deployed their account?

I understand that a smart contract for an account is created only when the “Account was deployed” through a transaction.

But is there any option to validate an account without first creating a wallet?

I can call the signMessage method from starknet.js by logging in via Braavos or Argent X — and I will receive a signature

But when I try to verify it on the backend, I always get the answer that the signature for the wallet address specified for verification is incorrect (only if it is not an “activated account”)

So, can I somehow verify the signature on my backend without having to write to the user “make a transaction to log in to my platform”?

Thanks guys!

the account has to be activated

I understand, but after logging into the wallet (even if not yet activated) on the frontend side through a browser extension, I was able to generate a signature, which means that the wallet already has the private key with which it was signed

And this means that there must be a public one
I made sure of this by creating a wallet that has not yet been deployed, and at the same time, if you look in the wallet extension settings, it has both a private key and a public one

Is there really no way to get this public key on the backend side and verify the off-chain message signed by the user with it?