Fledge
An open source edge computing platform for industrial users
bearer_token.h
1 #ifndef _BEARER_TOKEN_H
2 #define _BEARER_TOKEN_H
3 /*
4  * Fledge bearer token utilities
5  *
6  * Copyright (c) 2021 Dianomic Systems
7  *
8  * Released under the Apache 2.0 Licence
9  *
10  * Author: Massimiliano Pinto
11  */
12 #include <server_http.hpp>
13 #include <string>
14 
15 #define AUTH_HEADER "Authorization"
16 #define BEARER_SCHEMA "Bearer "
17 
25 {
26  public:
27  BearerToken(std::shared_ptr<SimpleWeb::Server<SimpleWeb::HTTP>::Request> request);
28  BearerToken(std::string& token);
29  ~BearerToken() {};
30  bool exists()
31  {
32  return m_bearer_token.length() > 0;
33  };
34  // Return string reference
35  const std::string&
36  token() { return m_bearer_token; };
37  bool verify(const std::string& serverResponse);
38  unsigned long getExpiration() { return m_expiration; };
39  // Return string references
40  const std::string&
41  getAudience() { return m_audience; };
42  const std::string&
43  getSubject() { return m_subject; };
44  const std::string&
45  getIssuer() { return m_issuer; };
46 
47  private:
48  bool m_verified;
49  unsigned long m_expiration;
50  std::string m_bearer_token;
51  std::string m_audience;
52  std::string m_subject;
53  std::string m_issuer;
54 };
55 
56 #endif
bool verify(const std::string &serverResponse)
BearerToken verification from JSON string reference.
Definition: bearer_token.cpp:66
This class represents a JWT bearer token.
Definition: bearer_token.h:24