CocoaTweet
oauth.h
Go to the documentation of this file.
1 #ifndef COCOATWEET_OAUTH_OAUTH_H_
2 #define COCOATWEET_OAUTH_OAUTH_H_
3 
4 #include <string>
5 #include <map>
6 #include <memory>
7 #include "key.h"
8 
9 namespace CocoaTweet::OAuth {
10 class OAuth1 {
11 public:
12  enum AuthType { OAuth, Bearer };
13 
14  OAuth1();
15  OAuth1(const Key _key);
16  std::map<std::string, std::string> signature(const std::map<std::string, std::string>& _param,
17  const std::string& _method,
18  const std::string& _url);
19 
20  const std::string& generateBearerToken();
21  const std::string calculateAuthHeader(std::map<std::string, std::string> _bodyParam,
22  const std::string& _method, const std::string& _url);
23 
24  const std::string nonce() const;
25  const std::string timestamp() const;
26  const std::string method() const;
27  const std::string version() const;
28  const Key key() const;
29  std::map<std::string, std::string> oauthParam() const;
30  std::string hmacSha1(std::string _key, std::string _data);
31  const std::string base64(const std::string& _raw);
32 
33 private:
34  AuthType authType_;
35  Key key_;
36  const std::string SIGNATURE_METHOD_ = "HMAC-SHA1";
37  const std::string OAUTH_VERSION_ = "1.0";
38  static size_t curlCallback_(char* _ptr, size_t _size, size_t _nmemb, std::string* _stream) {
39  int realsize = _size * _nmemb;
40  _stream->append(_ptr, realsize);
41  return realsize;
42  }
43 };
44 } // namespace CocoaTweet::OAuth
45 
46 #endif
CocoaTweet::OAuth::OAuth1::Bearer
@ Bearer
Definition: oauth.h:12
CocoaTweet::OAuth::OAuth1::oauthParam
std::map< std::string, std::string > oauthParam() const
Definition: oauth.cc:170
CocoaTweet::OAuth::OAuth1::generateBearerToken
const std::string & generateBearerToken()
Definition: oauth.cc:80
CocoaTweet::OAuth::OAuth1::OAuth
@ OAuth
Definition: oauth.h:12
CocoaTweet::OAuth::OAuth1
Definition: oauth.h:10
CocoaTweet::OAuth::OAuth1::timestamp
const std::string timestamp() const
Definition: oauth.cc:154
CocoaTweet::OAuth::OAuth1::signature
std::map< std::string, std::string > signature(const std::map< std::string, std::string > &_param, const std::string &_method, const std::string &_url)
Definition: oauth.cc:30
CocoaTweet::OAuth::OAuth1::nonce
const std::string nonce() const
Definition: oauth.cc:141
CocoaTweet::OAuth::OAuth1::key
const Key key() const
Definition: oauth.cc:166
CocoaTweet::OAuth::Key
Definition: key.h:8
CocoaTweet::OAuth::OAuth1::version
const std::string version() const
Definition: oauth.cc:162
CocoaTweet::OAuth::OAuth1::hmacSha1
std::string hmacSha1(std::string _key, std::string _data)
Definition: oauth.cc:210
key.h
CocoaTweet::OAuth::OAuth1::calculateAuthHeader
const std::string calculateAuthHeader(std::map< std::string, std::string > _bodyParam, const std::string &_method, const std::string &_url)
Definition: oauth.cc:49
CocoaTweet::OAuth::OAuth1::OAuth1
OAuth1()
Definition: oauth.cc:26
CocoaTweet::OAuth::OAuth1::AuthType
AuthType
Definition: oauth.h:12
CocoaTweet::OAuth::OAuth1::base64
const std::string base64(const std::string &_raw)
Definition: oauth.cc:180
CocoaTweet::OAuth::OAuth1::method
const std::string method() const
Definition: oauth.cc:158
CocoaTweet::OAuth
Definition: key.cc:7