请问 http://www.qq.com/?#access_token=YOUR_ACCESS_TOKEN&expires_in=3600 中'?#'是怎么回事儿?我该如何获取 access_token?

2019-08-24 08:56:29 +08:00
 Newyorkcity
request.getParameter("access_token") ?

谢谢
1412 次点击
所在节点    问与答
6 条回复
lizheming
2019-08-24 09:17:43 +08:00
? 没有太大意义,# 之后是 hash,按照规范 HTTP 请求的时候是不会带 hash 的,所以服务端获取不到。
okwork
2019-08-24 09:20:32 +08:00
@lizheming 这说明 qq.com 的 web 服务器是有自定义路由设置的?否则 qq.com 按常规 http 规范自己也参数了
lizheming
2019-08-24 09:24:44 +08:00
@okwork 服务端拿不到可以给前端用嘛... JS 获取之后携带在之后每一个接口请求的参数里就行。浏览器按照规范发送的时候就已经不带 hash 了,所以 Server 自定义没有用。
Newyorkcity
2019-08-24 09:26:22 +08:00
@lizheming 谢谢
这个东西出自

https://wiki.open.qq.com/wiki/website/%E5%BC%80%E5%8F%91%E6%94%BB%E7%95%A5_Client-side#Step2.EF.BC.9A.E8.8E.B7.E5.8F.96Access_Token


是讲网站要接入 QQ 登录功能时,在向 QQ 的功能模块发起请求成功后 QQ 按照指定的回调地址后会添上?#access_token=YOUR_ACCESS_TOKEN&expires_in=3600

这把我看傻了,我的回调地址是 java 的一个 controller....不知道怎么获取这里的 access_token
lizheming
2019-08-24 09:30:16 +08:00
@Newyorkcity 后面不是有特别提示么~

> 特别提示:
> 1. 请求时传入的 recirect_uri 必须与注册时填写的回调地址一致,用来进行第三方应用的身份验证。
> 2. 可通过 js 方法:window.location.hash 来获取 URL 中#后的参数值,详见下面的示例代码。
> 3. 建议用 js 设置 cookie 存储 token。
> 4. 获取到的 access token 具有 3 个月有效期,用户再次登录时自动刷新。
lizheming
2019-08-24 09:31:32 +08:00
@Newyorkcity 另外你看的这个是纯 JS 端的 OAuth 登录流程,如果是服务端的话应该看 https://wiki.open.qq.com/wiki/website/%E5%BC%80%E5%8F%91%E6%94%BB%E7%95%A5_Server-side 这个吧?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/594667

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX