Implement context copying in Authentication struct
The changes aim to assign a copy of the HTTP client context to the Authentication struct, instead of passing the context directly. This ensures that the data from the original context remains unchanged even when the Authentication object is modified, thus increasing stability and reducing potential errors in the system.