Best way to choose template based on db lookup (iron router)

I’ve got a seemingly simple situation that I’ve gotten super confused about. At a certain route, I need to validate a token by looking it up in a collection. Then I either show a different template or just render the same one differently using helpers. As far as I can tell, I have the following options:

  1. Check in iron router’s onBeforeAction—but it’s unclear how I would get access to the collection; I assume I’d have to publish a special parameterized publication just for this purpose? Seems inelegant.

  2. Use a Meteor Method call in the template’s onCreated block, then set a Session variable based on the results.

Right now I’m leaning towards the latter, but I’m curious if I’m missing something obvious for such a seemingly common task.

After sleeping on this I realized that a subscription (template level, in my opinion) is the “Meteor way” to do this. It doesn’t need to be reactive, but I guess it doesn’t hurt…