More APIs added to jwt_object

This commit is contained in:
Arun M 2017-11-23 18:14:32 +05:30
parent 973e7e0249
commit 9abac3c5d7
4 changed files with 33 additions and 4 deletions

View file

@ -254,7 +254,7 @@ jwt_payload& jwt_object::add_claim(const string_view name, T&& value)
return payload_; return payload_;
} }
jwt_payload& jwt_object::remove_claim(const std::string& name) jwt_payload& jwt_object::remove_claim(const string_view name)
{ {
payload_.remove_claim(name); payload_.remove_claim(name);
return payload_; return payload_;

View file

@ -199,6 +199,13 @@ public: // Exposed APIs
alg_ = alg; alg_ = alg;
} }
/**
*/
void algo(const string_view sv)
{
alg_ = str_to_alg(sv.data());
}
/*! /*!
*/ */
enum algorithm algo() const noexcept enum algorithm algo() const noexcept
@ -305,13 +312,13 @@ public: // Exposed APIs
/** /**
*/ */
bool remove_claim(const std::string& cname) bool remove_claim(const string_view cname)
{ {
auto itr = claim_names_.find(cname); auto itr = claim_names_.find(cname);
if (itr == claim_names_.end()) return false; if (itr == claim_names_.end()) return false;
claim_names_.erase(itr); claim_names_.erase(itr);
payload_.erase(cname.c_str()); payload_.erase(cname.data());
return true; return true;
} }
@ -517,6 +524,20 @@ public: // Exposed APIs
return header_; return header_;
} }
/**
*/
std::string secret() const
{
return secret_;
}
/**
*/
void secret(const string_view sv)
{
secret_.assign(sv.data(), sv.length());
}
/** /**
*/ */
template <typename T> template <typename T>
@ -524,7 +545,7 @@ public: // Exposed APIs
/** /**
*/ */
jwt_payload& remove_claim(const std::string& name); jwt_payload& remove_claim(const string_view name);
/** /**
*/ */

Binary file not shown.

View file

@ -34,6 +34,14 @@ void basic_jwt_object_test()
.add_claim("time", 176353563); .add_claim("time", 176353563);
std::cout << jwt::to_json_str(obj3.payload(), true) << std::endl; std::cout << jwt::to_json_str(obj3.payload(), true) << std::endl;
obj3.remove_claim(std::string{"a"});
std::cout << obj3.payload() << std::endl;
obj3.secret("secret");
obj3.header().algo("hs256");
std::cout << obj3.signature() << std::endl;
} }
int main() { int main() {