如何在Casablanca REST API中检索授权标头

时间:2014-12-03 21:35:03

标签: c++ rest casablanca

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

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

1 个答案:

答案 0 :(得分:1)

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

string_t authHeader;

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

headers = request.headers();
authHeader = headers[header_names::authorization];