symfony - FOSOAuthServerBundle:将 access_token 嵌入授权 header 中

标签 symfony oauth-2.0 fosoauthserverbundle

据我所知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/

相关文章:

php - 始终在开发模式下显示工具栏

oauth-2.0 - 使用身份服务器 3.0 和 oAuth 2.0 时如何跨多个应用程序(Web/移动)共享 JWT token

python - Django + Foursquare OAuth + 用户登录

symfony - 使用 FOSOAuthServerBundle 获取刷新 token

php - Symfony2 一种API两种认证方式

jquery - 模式中的 Symfony2 表单未处理

Symfony 4 - 如何向实体添加业务逻辑

php - 无法访问字符串变量的属性

Azure Web App .net core OpenID redirect_uri 问题

php - ".default"在 Symfony 服务 ID 中有什么特殊意义吗?