Newyorkcity
V2EX  ›  问与答

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

  •  
  •   Newyorkcity · Aug 24, 2019 · 1787 views
    This topic created in 2550 days ago, the information mentioned may be changed or developed.
    request.getParameter("access_token") ?

    谢谢
    6 replies
    lizheming
        1
    lizheming  
       Aug 24, 2019
    ? 没有太大意义,# 之后是 hash,按照规范 HTTP 请求的时候是不会带 hash 的,所以服务端获取不到。
    okwork
        2
    okwork  
       Aug 24, 2019 via Android
    @lizheming 这说明 qq.com 的 web 服务器是有自定义路由设置的?否则 qq.com 按常规 http 规范自己也参数了
    lizheming
        3
    lizheming  
       Aug 24, 2019
    @okwork 服务端拿不到可以给前端用嘛... JS 获取之后携带在之后每一个接口请求的参数里就行。浏览器按照规范发送的时候就已经不带 hash 了,所以 Server 自定义没有用。
    Newyorkcity
        4
    Newyorkcity  
    OP
       Aug 24, 2019
    @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
        5
    lizheming  
       Aug 24, 2019   ❤️ 1
    @Newyorkcity 后面不是有特别提示么~

    > 特别提示:
    > 1. 请求时传入的 recirect_uri 必须与注册时填写的回调地址一致,用来进行第三方应用的身份验证。
    > 2. 可通过 js 方法:window.location.hash 来获取 URL 中#后的参数值,详见下面的示例代码。
    > 3. 建议用 js 设置 cookie 存储 token。
    > 4. 获取到的 access token 具有 3 个月有效期,用户再次登录时自动刷新。
    lizheming
        6
    lizheming  
       Aug 24, 2019   ❤️ 1
    @Newyorkcity 另外你看的这个是纯 JS 端的 OAuth 登录流程,如果是服务端的话应该看 https://wiki.open.qq.com/wiki/website/%E5%BC%80%E5%8F%91%E6%94%BB%E7%95%A5_Server-side 这个吧?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5591 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 09:06 · PVG 17:06 · LAX 02:06 · JFK 05:06
    ♥ Do have faith in what you're doing.