我运行了Jersey Grizzly REST服务器。现在我收到来自Microsoft的带有访问令牌的URL,但是这个访问令牌被放置为#符号之后的参数。
https://myURL.com/getToken/pathParam/#access_token=QWERwtrrgertWRDGTGHssef ....
当我收到来自MS的请求时,我无法通过任何方式读出访问令牌,因为它已被过滤掉。是否有配置我可以阻止这个并将令牌作为参数?
答案 0 :(得分:2)
从片段的外观来看,您似乎正在尝试完成OAuth流程。我看到的问题是,您正在尝试实现一个针对客户端(或更准确地说,用户代理端)的流,然后尝试访问服务器上的片段,这意味着要在用户代理方。
#access_token..
告诉我您正在尝试实施Implicit Grant。如果您可以访问更常见的Authorization Code Grant,则不建议这样做。我不知道您正在使用的Microsoft服务,但如果他们提供隐式授权,那么他们还应该提供授权代码授权,这实际上是所有授权类型中最常见的。
如果您想坚持使用隐式授权,那么您将需要实际处理来自客户端(用户代理)方面的重定向,这意味着您可以编写一些Javascript来将令牌回发到服务器。您可以看到示例here。
我个人不会推荐它。您可以查看Jersey OAuth 2.0 client。它将有助于实施授权代码流程。