Session-specific Symmetric Key Derivation Using SHA256
HMAC: The hmac version is considered slightly more secure than sha-256, assuming it's also based on SHA-256, because the HMAC formulation folds in the key material with 2 rounds of hashing, making it harder to use a chosen plaintext attack on the digest.  

SHA-256: SHA-256 should be relatively secure against chosen plaintext attacks, but it's better to be safe than sorry. 

You can also achieve a higher level of assurance and forward security provided $K$ is not long-lived, but rather is chained to the immediately previous session. 

For some stored value D1:

K2 = HMAC(Nonce,D1)     // session key
D2 = HMAC(Nonce,K2)     // stored material for a future session
authtoken = E(K2,Nonce) // auth token proving client derived K2 correctly


If you want to authenticate the server, you can also pass a token from server to client, thus proving the server knows D1.  Something like, 

servtoken = E(K2,authtoken)   // proof server knows D1


Client checks servtoken before sending authtoken.  D1 is discarded and replaced with D2. So you have bidirectional authentication and forward security.