# Anonymous authentication
Anonymous authentication can be allowed by creating a custom strategy that returns the params that you would like to use to identify an authenticated user.
Next, we create a hook called allow-anonymous that sets params.authentication if it does not exist and if params.provider exists (which means it is an external call) to use that anonymous strategy:
This hook should be added before the authenticate hook wherever anonymous authentication should be allowed:
all: [ allowAnonymous(), authenticate('jwt', 'anonymous') ],
If an anonymous user now accesses the service externally, the service call will succeed and have params.anonymous set to true.
