2012-08-23 97 views
1

我正在使用3scale来管理任何API的前端。我想要在请求的头部中包含API而不是URL字符串(似乎有点整洁)配置清漆读取标题

目前它被定义为这样。

set req.http.X-3scale-app_id = regsub(req.url,".*[&?](app_id.[^&]*).*","\1"); 
    set req.http.X-3scale-app_key = regsub(req.url,".*[&?](app_key.[^&]*).*","\1"); 
    set req.http.X-3scale-user_key = regsub(req.url,".*[&?](user_key.[^&]*).*","\1"); 
    set req.http.X-3scale-user_id = regsub(req.url,".*[&?](user_id.[^&]*).*","\1"); 

    if (req.http.X-3scale-app_id != req.url) { 
    set req.http.X-3scale-authrep = req.http.X-3scale-authrep + "&" + req.http.X-3scale-app_id; 
    } 

    if (req.http.X-3scale-app_key != req.url) { 
    set req.http.X-3scale-authrep = req.http.X-3scale-authrep + "&" + req.http.X-3scale-app_key; 
    } 

    if (req.http.X-3scale-user_id != req.url) { 
    set req.http.X-3scale-authrep = req.http.X-3scale-authrep + "&" + req.http.X-3scale-user_id; 
    } 

    if (req.http.X-3scale-user_key != req.url) { 
    set req.http.X-3scale-authrep = req.http.X-3scale-authrep + "&" + req.http.X-3scale-user_key; 
    } 

    unset req.http.X-3scale-app_id; 
    unset req.http.X-3scale-app_key; 
    unset req.http.X-3scale-user_id; 
    unset req.http.X-3scale-user_key; 

我想什么做的是采取从标题中的关键,因为我觉得它似乎更好,所以我可以做这样的事情......

集req.http.X-3比例,APP_KEY = req.http.x-appid

但是我不能得到这个工作!我失去了一些东西

回答

0

你可以尝试这样的

set req.X-3scale-app_id = header.get(req.http.SomeOtherHeader,".*"); 

在客户端,你应该以明文

设置SomeOtherHeader东西来使用来自VMOD header获得方法,但你为什么不设置这个X- 3scale-app_id直接在客户端?

+0

它通过3scale通过api认证。我会尝试vmod标题。请求应该如何看待客户端?大概是 –

+0

setRequestHeader – ghloogh