У меня есть следующая функция для проверки заголовка авторизации.
bool is_authorized(http_request request)
{
bool isAuthorized = false;
int bitmask;
int maskResult;
ApplicationAuthorization returned_auth;
ApplicationAuthorizations authorizations;
char authHeader[255];
if (!request.headers().has(header_names::authorization)) return false;returned_auth = authorizations.GetAuthorization(to_string_t("token {368EB89B-8A5E-5CF3-07AB-C16961D1A392}"));
bitmask = 1 << DATAENGINE;
maskResult = (returned_auth.GetApplicationId() & bitmask);
isAuthorized = maskResult;
return isAuthorized;
}
На данный момент я вставил временный токен только для тестирования, и хотя я могу видеть, как проверить, присутствует ли заголовок авторизации — не ясно, как получить значение этого заголовка.
Кто-нибудь получил представление о том, как с помощью Casablanca REST API вы можете получить заголовок.
Заголовки доступны путем вызова функции headers () объекта запроса. Следующий код помещает заголовок авторизации в локальную переменную authHeader.
string_t authHeader;
if (!request.headers().has(header_names::authorization)) return false;
headers = request.headers();
authHeader = headers[header_names::authorization];