this RPC is called by both new and existing users signing in with an ethereum wallet. as a result, we need to use the wallet address to check if the user exists before determining whether to update a given user in DDB or create a new entry. we return an access token on successful login.
used the siwe-rs crate to verify the SIWE signature.
Depends on D7539