Question about isAuthenticated

I notice that if I have the user authenticate with metamask , it sets isAuthenticated to true? Also if they sign in with login and password , it sets isAuthenticated to true? Is there a way to tell if they are logged in ,but need to authenticate with metamask ?

I hope that makes sense. I want them to sign in with a password and user id, but then also authenticate with metamask .

Or if I have them authenticate with metamask first, then have them sign in , I can pass the eth Address to the user table signup function , but How will the app know they are authenticated withi metamask but Not with user login yet >?

You could find out how they authenticated last time by looking on the Session table, you will find:
{"action":"signup","authProvider":"password"} and {"action":"login","authProvider":"moralisEth"} in createdWith column.