2013-09-12 7 views
4

Из того, что я могу видеть here, не рекомендуется хранить важные данные (например, access_token) в параметрах querystring.FOSOAuthServerBundle: встроить access_token в заголовок авторизации

то есть: я пытаюсь избежать этого:

http://localhost.dev/web/app_dev.php/api/articles?access_token=NzJhNz..... 

Поэтому я попытался сделать запросы API с access_token в заголовке Authorization (которая была предложена here При попытке сделать это, я получаю. следующее сообщение об ошибке:

{ 
    "error": "access_denied", 
    "error_description": "OAuth2 authentication required" 
} 

Однако запрос именно так, и маркер, кажется, правильно установить:

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?

Примечание: Я проверил в браузере, и маркер остается в силе (не истек).

ответ

5

Как уже упоминалось here по @alanbem, то Authorization заголовок должен выглядеть следующим образом:

Authorization: Bearer N2FmNzhhNGM2MTI5N2JhMWJlYj... 

Примечание: Если вы используете AFHTTPClient для развития IOS, вы просто должны переопределить (void)setAuthorizationHeaderWithToken:(NSString *)token метод.

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

Как уже упоминалось @Mick, вы можете использовать заголовок авторизации.

Если вы делаете это внутри, внутри PHPUnit и любое другое место, которое использует Symfony запрос, вы должны использовать заголовок как:

$headers = ['HTTP_AUTHORIZATION' => 'Bearer 2FmNzhhNGM2MTI5N2JhMWJlYj...']; 

Это важно, когда вы тестируете и не хотите портить ваши параметры URI или запроса.