【问题标题】:Get OAuth 2.0 access token from # fragment on server side从服务器端的 # 片段获取 OAuth 2.0 访问令牌
【发布时间】:2015-10-12 11:22:17
【问题描述】:

我正在运行 Jersey Grizzly REST 服务器。现在我收到来自 Microsoft 的带有访问令牌的 URL,但是此访问令牌作为参数放置在 # 符号之后。

https://myURL.com/getToken/pathParam/#access_token=QWERwtrrgertWRDGTGHssef....

当我收到来自 MS 的请求时,我无法以任何方式读出访问令牌,因为它已被过滤掉。是否有配置可以阻止此操作并将令牌作为参数获取?

【问题讨论】:

标签: java rest oauth-2.0 jersey-2.0


【解决方案1】:

从片段的外观来看,您似乎正在尝试完成 OAuth 流程。我看到的问题是您正在尝试实现一个适用于客户端(或更准确地说是用户代理端)的流程,然后尝试访问服务器上的片段,这意味着在用户代理端。

#access_token.. 告诉我你正在尝试实现Implicit Grant。如果您可以访问更常见的Authorization Code Grant,则不建议这样做。我不知道你使用的是什么微软服务,但如果他们提供隐式授权,那么他们也应该提供授权代码授权,这实际上是所有授权类型中最常见的。

如果您想坚持使用隐式授权,那么您将需要实际处理来自客户端(用户代理)端的重定向,这意味着您需要编写一些 Javascript 以将令牌回发到服务器。你可以看一个例子here。

我个人不会推荐它。你可以看看Jersey OAuth 2.0 client。它将有助于实施授权代码流程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    • 2013-07-12
    • 1970-01-01
    • 2017-06-23
    • 2012-01-21
    相关资源
    最近更新 更多