Check if viewing teaser in hook_node_access
This is not possible in hook_node_access, Drupal does not allow for this so easily. Instead, you could use module Premium Content (https://drupal.org/project/premium_content) and do this in configuration.

Btw., this question has already been answered:
Show teasers to anonymous visitors but not allow access to the body/node