Your question isn't very clear on what you are trying to achieve.
If your scenario is a multitenant scenario with database per tenant then you could create an ITenantResolver that would use the authentication token to resolve the tenant (as an example, you could use whatever logic you require to resolve the tenant) and inject the ITenantResolver into to an IConnectionStringResolver that would select the correct ConnectionString for the resolved tenant. The IConnectionStringResolver could then be injected into the DbContext that would use it to configure the connection. That way you could inject DbContext into the controller or the controller action as you normally do. The ITenantResolver can also be used whenever you need to know the current tenant.
If this isn't your scenario then I would say to have a look at the DbContextFactory and check if that fits your needs (the ITenantResolver and IConnectionStringResolver can be used along with DbContextFactory).
If you give some more details on your scenario and what you are trying to achieve I can help you with more details.
Hope this helps
Edit: I'm assuming that your question is related to having the same DbContext type to connect to different databases. If your question is about having multiple DbContext types that each connect to different databases, then you just need to register the multiple DbContext types on Startup, each one with the corresponding ConnectionString and inject the one(s) you need in the controller or the controller action.