33 lines
843 B
C
33 lines
843 B
C
|
#ifndef CPR_AUTH_H
|
||
|
#define CPR_AUTH_H
|
||
|
|
||
|
#include <string>
|
||
|
|
||
|
#include <utility>
|
||
|
|
||
|
namespace cpr {
|
||
|
|
||
|
enum class AuthMode { BASIC, DIGEST, NTLM };
|
||
|
|
||
|
class Authentication {
|
||
|
public:
|
||
|
Authentication(std::string username, std::string password, AuthMode auth_mode) : auth_string_{std::move(username) + ":" + std::move(password)}, auth_mode_{std::move(auth_mode)} {}
|
||
|
Authentication(const Authentication& other) = default;
|
||
|
Authentication(Authentication&& old) noexcept = default;
|
||
|
~Authentication() noexcept;
|
||
|
|
||
|
Authentication& operator=(Authentication&& old) noexcept = default;
|
||
|
Authentication& operator=(const Authentication& other) = default;
|
||
|
|
||
|
const char* GetAuthString() const noexcept;
|
||
|
AuthMode GetAuthMode() const noexcept;
|
||
|
|
||
|
private:
|
||
|
std::string auth_string_;
|
||
|
AuthMode auth_mode_;
|
||
|
};
|
||
|
|
||
|
} // namespace cpr
|
||
|
|
||
|
#endif
|