Sockets (subscription) and JWT auth
### Summary
I needed to defeat additional parameters from the request - I did it with `pgSettings => req {}`
Using pgSetting I can not use pgDefaultRole.
```
 throw new Error('pgDefaultRole cannot be combined with pgSettings(req) - please remove pgDefaultRole and instead always return a `role` key from pgSettings(req).');
```

After removing pgDefaultRole I had to abandon the automatic JWT processing and implement the definition of the role in pgSettings:

```
pgSettings: req => {
            const settings = {
                'role': 'anonymous',
                'jwt.claims.role': 'anonymous',
            };

            if (req.user) {
                settings["jwt.claims.role"] = req.user.role;
                settings["jwt.claims.user_id"] = req.user.user_id;
                settings["role"] = req.user.role;
            }

            return settings
        },
```

But it does not work for Subscriptions (sockets). Token in sockets is transmitted in the message. 
```
{"type":"connection_init","payload":{"Authorization":"Bearer ....."}}
```
Because of this, queries are executed on behalf of the default user, so I can't receive messages using Subscription - `relatedNode: null` (because "Permission deniend for table ...")

How to properly implement authorization with JWT for socket connections?

### Additional context
Postgraphile: 4.12.8
Postgres 13.6
