我们有一个带有 spring mvc 控制器的 spring web 应用程序。它应该连接到我们的 facebook 应用程序以获取用于进一步访问的身份验证令牌。与我们的应用程序的通信似乎有效。当我点击链接
<a href="https://www.facebook.com/dialog/oauth?client_id=something&redirect_uri=http://our.domaine.register/postback?user_id=12345&scope=manage_pages&response_type=code">connect</a>
它会将我重定向到 facebook,我将输入我的凭据并重定向回
our.domaine.register/postback?user_id=12345&code=SoMEcOde
这又是我们的 Spring MVC 控制器之一,但这并不重要,因为
问题是,facebook 返回的代码是格式错误的 accessToken,
这意味着如果我尝试使用它来访问受保护的资源,它将无法工作。用通过图形 API 资源管理器检索到的访问令牌替换相同的调用,它工作正常。
返回的代码具有特殊的格式,其中包含“-”、“_”和“=”字符,这是普通访问令牌所没有的。
所以我假设必须进行某种转换?!还是某种格式问题?
返回的令牌:
AQBoXkcR5zRUiuHoO_lLdQfnxxxxxxxxxxxxxxxxoPPvZQTeybT9ebsI2SD1Xk
代码和accessToken一样吗?
官方文档大多只是谈论使用锚散列(REDIRECT_URL/#access_token=...)和通过javascript访问access_token,虽然我不知道为什么我要这样做,它不自然也不可测试......
有没有人使用 code 参数将其映射为请求参数,以便可以在控制器中访问它?