我有以下功能来检查授权标题。
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;
}
目前我已经安装了一个临时令牌用于测试,而我可以看到如何检查Authorization标头是否存在 - 目前尚不清楚如何检索该标头的值。
任何人都知道如何使用Casablanca REST API来检索标题。
答案 0 :(得分:1)
通过调用请求对象的headers()函数可以获得标头。以下代码将授权标头放在authHeader局部变量中。
string_t authHeader;
if (!request.headers().has(header_names::authorization)) return false;
headers = request.headers();
authHeader = headers[header_names::authorization];