- Notifications
You must be signed in to change notification settings - Fork 122
/
Copy pathdebug_token_request.h
64 lines (54 loc) · 2.21 KB
/
debug_token_request.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef FIREBASE_APP_CHECK_SRC_DESKTOP_DEBUG_TOKEN_REQUEST_H_
#defineFIREBASE_APP_CHECK_SRC_DESKTOP_DEBUG_TOKEN_REQUEST_H_
#include<string>
#include<utility>
#include"app/rest/request_json.h"
#include"app_check/debug_token_request_generated.h"
#include"app_check/debug_token_request_resource.h"
#include"firebase/app.h"
namespacefirebase {
namespaceapp_check {
namespaceinternal {
// The server url to exchange the debug token with for a attestation token.
staticconstchar* kDebugTokenRequestServerUrlBase =
"https://firebaseappcheck.googleapis.com/v1/projects/";
// The header used to pass the project's API key.
staticconstchar* kDebugTokenRequestHeader = "X-Goog-Api-Key";
// Request to exchange the user provided Debug Token with a valid attestation
// token.
classDebugTokenRequest
: public firebase::rest::RequestJson<fbs::DebugTokenRequest,
fbs::DebugTokenRequestT> {
public:
explicitDebugTokenRequest(App* app)
: RequestJson(debug_token_request_resource_data) {
std::string server_url(kDebugTokenRequestServerUrlBase);
server_url.append(app->options().project_id());
server_url.append("/apps/");
server_url.append(app->options().app_id());
server_url.append(":exchangeDebugToken");
set_url(server_url.c_str());
add_header(kDebugTokenRequestHeader, app->options().api_key());
}
voidSetDebugToken(std::string debug_token) {
application_data_->debug_token = std::move(debug_token);
UpdatePostFields();
}
};
} // namespace internal
} // namespace app_check
} // namespace firebase
#endif// FIREBASE_APP_CHECK_SRC_DESKTOP_DEBUG_TOKEN_REQUEST_H_