FOSOAuthServerBundle:将access_token嵌入Authorization标头中

Mic*_*ick 4 symfony oauth-2.0 fosoauthserverbundle

从我在这里看到的,在查询字符串参数中保存敏感数据(如access_token)不是一个好主意.

即:我试图避免这种情况:

http://localhost.dev/web/app_dev.php/api/articles?access_token=NzJhNz.....
Run Code Online (Sandbox Code Playgroud)

因此,我尝试使用access_tokenAuthorization标头中的api请求(这里建议使用.当尝试这样做时,我收到以下错误:

{
    "error": "access_denied",
    "error_description": "OAuth2 authentication required"
}
Run Code Online (Sandbox Code Playgroud)

但是,请求与此完全相同,并且令牌似乎已正确设置:

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)
Run Code Online (Sandbox Code Playgroud)

有没有人知道这是否可行FOSOAuthServerBundle

注意:我在浏览器中验证过,令牌仍然有效(未过期).

Mic*_*ick 5

如前所述这里通过@alanbem,该认证头应该是这样的:

Authorization: Bearer N2FmNzhhNGM2MTI5N2JhMWJlYj...
Run Code Online (Sandbox Code Playgroud)

注意:如果您正在使用AFHTTPClientiOS开发,则只需覆盖该(void)setAuthorizationHeaderWithToken:(NSString *)token方法即可.

- (void)setAuthorizationHeaderWithToken:(NSString *)token {
    [self setDefaultHeader:@"Authorization" value:[NSString stringWithFormat:@"Bearer %@", token]];
}
Run Code Online (Sandbox Code Playgroud)