My user case needs to dynamically create tokens for the logging user. It looks a perfect case for aura storage to store the token results from the server action. From the answer of the question here, it looks the auraStorage is only applicable for template component. Since I need use my component in Lightning communities, there would be no need (and/or no way?) to define a lightning app. Is there a way to utilize auraStorage without template component?
The Aura Storage Service only supports caching of serverside actions:
Server-side actions storage is the only currently supported type of storage. Storage for server-side actions caches action response values. The storage name must be actions.
Within Communities and the Lightning Experience, the aura storage is already initialized for you and you can just used cached actions directly.
Stored/Cached actions are documented in depth here: https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/controllers_server_storable_actions.htm