据我所知here ,在查询字符串参数中保存敏感数据(如 access_token)并不是一个好主意。
即:我试图避免这种情况:
http://localhost.dev/web/app_dev.php/api/articles?access_token=NzJhNz.....
因此,我尝试使用 Authorization header 中的 access_token
发出 api 请求(建议 here )。
当尝试这样做时,我收到以下错误:
{
"error": "access_denied",
"error_description": "OAuth2 authentication required"
}
但是,请求完全是这样的,并且 token 似乎已正确设置:
GET /web/app_dev.php/api/articles HTTP/1.1
Host localhost.dev
Authorization access_token=N2FmNzhhNGM2MTI5N2JhMWJlYjEdZjA0ZWM3ZTRhMTM1OGM0ODJjMzQzYjM7NTk3ZTEzNTVjZDczZTljMDk2MQ
Accept-Encoding gzip, deflate
Accept application/json
Accept-Language en;q=1, fr;q=0.9, de;q=0.8, ja;q=0.7, nl;q=0.6, it;q=0.5
Connection keep-alive
User-Agent Localhost/1.0 (iPhone; iOS 6.1.4; Scale/2.00)
有谁知道FOSOAuthServerBundle
是否可以实现这一点?
注意:我在浏览器中进行了验证, token 仍然有效(未过期)。
最佳答案
如上所述here通过 @alanbem ,授权 header 应如下所示:
Authorization: Bearer N2FmNzhhNGM2MTI5N2JhMWJlYj...
注意:如果您使用 AFHTTPClient
进行 iOS 开发,则只需重写 (void)setAuthorizationHeaderWithToken: (NSString *)token
方法。
- (void)setAuthorizationHeaderWithToken:(NSString *)token {
[self setDefaultHeader:@"Authorization" value:[NSString stringWithFormat:@"Bearer %@", token]];
}
关于symfony - FOSOAuthServerBundle:将 access_token 嵌入授权 header 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18767936/