Browse Source

Add a getter for a bearer token from a request (#1755)

* Add a getter for a bearer token from a request

* Replace a method for bearer token getter with a free function
Ilya Andreev 1 year ago
parent
commit
449801990f
1 changed files with 11 additions and 0 deletions
  1. 11 0
      httplib.h

+ 11 - 0
httplib.h

@@ -745,6 +745,8 @@ void default_socket_options(socket_t sock);
 
 
 const char *status_message(int status);
 const char *status_message(int status);
 
 
+std::string get_bearer_token_auth(const Request &req);
+
 namespace detail {
 namespace detail {
 
 
 class MatcherBase {
 class MatcherBase {
@@ -1943,6 +1945,15 @@ inline const char *status_message(int status) {
   }
   }
 }
 }
 
 
+inline std::string get_bearer_token_auth(const Request &req) {
+  if (req.has_header("Authorization")) {
+    static std::string BearerHeaderPrefix = "Bearer ";
+    return req.get_header_value("Authorization")
+        .substr(BearerHeaderPrefix.length());
+  }
+  return "";
+}
+
 template <class Rep, class Period>
 template <class Rep, class Period>
 inline Server &
 inline Server &
 Server::set_read_timeout(const std::chrono::duration<Rep, Period> &duration) {
 Server::set_read_timeout(const std::chrono::duration<Rep, Period> &duration) {