I believe the approach:
is pretty standard, regardless of how you implement and other specific technical details.
If you really want to push the envelope, perhaps you could regard the client's https key in a temporarily invalid state until the credentials are validated, limit information if they never are, and grant access when they are validated, based again on expiration.
Hope this helps