1

我有以下功能来检查授权标头。

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 来检索标头。

4

1 回答 1

2

可以通过调用请求对象的 headers() 函数来获得标头。以下代码将授权标头放在 authHeader 局部变量中。

string_t authHeader;

if (!request.headers().has(header_names::authorization)) return false;

headers = request.headers();
authHeader = headers[header_names::authorization];
于 2015-01-10T17:51:48.467 回答