mutual authentication with pre-shared key A and B share two secrete keys: [keyA] and [keyB].
A sends this to B.
AUTH_A = prf(KeyA, ID_A)
B sends this to A.
AUTH_B = prf(KeyB, ID_B)
Does above scheme provide mutual authentication?
I think so because prf is just a key hashed function, as only A and B know the secret key, attacker cannot forge the message or learn the keyA or keyB from the messages.
When B received AUTH_A, it can calculate  prf(KeyA, ID_A) and compare it to AUTH_A to verify A's identity.
Do I miss any key concept or important consideration?
Typically, a preshared key itself is already mutually authenticated, i.e., you can simply use that key to encrypt and decrypt messages. The AUTH messages are not necessary and actually useless. However, here the mutual authentication does not imply that the public identities of both parties are explicitly authenticated, but depends on the authentication guarantees provided by the previous session that generated the pre-shared key. That is, direct use of a preshared key just guarantees the same two parties communicated before resume their session. More authentication procedures are required (e.g., each party signs a challenge message) to ensure explicit identity authentication, if it has not been guaranteed by the previous session.