V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chuixing
V2EX  ›  问与答

请教两个新手问题,有关公众号网页开发的,感谢感谢。

  •  
  •   chuixing · 2018-01-30 16:11:26 +08:00 · 1596 次点击
    这是一个创建于 2489 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 公众号网页开发流程中,refresh_token 有什么作用?既然调用次数是无上限的,为什么要有一个 refresh_token 呢。

    2. 如下: https://open.weixin.qq.com/connect/oauth2/authorize? 这样的调用接口,为什么接口文件可以没有扩展名呢,莫非后台是自己开发的语言?

    本人没有编程基础,百思不得其解,路过的老师们,恳请您解惑。

    6 条回复    2018-01-30 21:15:47 +08:00
    kslr
        1
    kslr  
       2018-01-30 16:23:45 +08:00
    oauth2
    route
    learnshare
        2
    learnshare  
       2018-01-30 16:27:24 +08:00
    2. URL 或者路径对服务器来说只是一些参数,不需要有对应的文件,所以跟扩展名无关
    就像老司机不一定是开车的人那样
    chuixing
        3
    chuixing  
    OP
       2018-01-30 17:07:06 +08:00
    @kslr 公众号授权用的是 oauth2,不过他文档里说调用次数是无限的,所以每次点进去都可以重新获取 access_token,所以我不明白为什么需要 refresh_token
    SourceMan
        4
    SourceMan  
       2018-01-30 17:16:23 +08:00
    1. access_token 是要缓存下来的,每次使用都去获取,频率限制,你就 GG 了。这时候,refresh_token 就很有作用了,用来刷新你缓存下来的 access_token (缓存即保存的意思,就像你拿到了藏柜子里一样,懂?)

    2. 你的这个问题让我想起了一个笑话:我的 Android 出 bug 了,我把植物大战僵尸的 .exe 安装包改成 .apk 拉到电脑里安装不上去,垃圾小米。后缀名不是关键,那个对于服务器来说只是一串字符串,我 /index.php 的路径可能实际执行的是 JAVA 程序,为什么要改成 .php ,因为 PHP 是世界上最好的语言。同理,没有后缀是因为微信毕竟低调,不想让大家知道他们用的什么后端语言。
    kslr
        5
    kslr  
       2018-01-30 17:21:23 +08:00   ❤️ 1
    @chuixing #3
    access_token 相等于认证后拿到了 token
    refresh_token 就可以延长这个 token 的生存时间

    如果你每次都需要获得 access_token,那就需要用户每次都去确认,这显然设计不合理。
    虽然微信这里并不需要确认,但最好还是遵守规范。
    另外我记得 access_token 的接口每天调用次数是有限制的,如果你超过了,就不能拿到新 token 业务不就废了吗?
    alcarl
        6
    alcarl  
       2018-01-30 21:15:47 +08:00 via Android   ❤️ 1
    oauth2 协议中 access token 是有有效期的,如果过期了,你又不想跳到认证页面重新授权,就需要 refresh token。这和用 access token 访问用户 api 的次数是没有关系的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   960 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:08 · PVG 05:08 · LAX 13:08 · JFK 16:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.