• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Waterchestnut
V2EX  ›  程序员

微信授权神奇操作请教~

  •  
  •   Waterchestnut · Jul 2, 2020 · 5529 views
    This topic created in 2322 days ago, the information mentioned may be changed or developed.

    偶然看一个公众号,点过去不需要授权也能拿到头像和昵称,并且生成了账号 ID,下次点进来还是这个账号 ID,说名该网页已经拿到了 open id 。不然无法识别是同一个用户。

    想跟大佬们请教下,这里不需要授权就能拿到信息是怎么操作的?

    链接我贴一下,大家瞻仰下

    http://www.huoxingplan.com/User/index/sid/8009103.html

    41 replies  •  2020-07-03 17:56:23 +08:00
    kop1989
    kop1989
    Jul 2, 2020
    1
    公众号拿头像不需要授权的啊
    kop1989
    kop1989
    Jul 2, 2020
    2
    openID 的话别说授权,不关注都可以拿到。
    guolaopi
    guolaopi
    Jul 2, 2020
    3
    你这个链接里也没有啥头像啊,不知道的以为你推广呢
    guolaopi
    guolaopi
    Jul 2, 2020
    4
    @kop1989 求教用户不授权怎么拿得到微信 openId 。。。
    helone
    helone
    Jul 2, 2020
    5
    公众号我没记错的话能静默授权,只需要中间跳转一下再跳回来就能拿到用户简单的信息,不需要确认啥的
    liKeYunKeji
    liKeYunKeji
    Jul 2, 2020
    7
    我打开是有要求授权的,如果取消授权,注册账号是没有头像的,我注册了之后没显示头像。单纯的获取 openid 是不需要授权就能获得 openid 的,如果要获得头像和昵称必须要授权。
    cqtop
    cqtop
    Jul 2, 2020
    8
    静默授权 了解下
    guolaopi
    guolaopi
    Jul 2, 2020 via Android
    11
    @helone
    @kop1989

    抱歉,刚看文档 snsapi_base 静默授权我看到了,
    但是#2 不关注公众号的话也会生成 openId 吗?我蒙了.

    https://developers.weixin.qq.com/doc/offiaccount/User_Management/Get_users_basic_information_UnionID.html#UinonId
    这里第一行说:“在关注者与公众号产生消息交互后,公众号可获得关注者的 OpenID 。”
    guolaopi
    guolaopi
    Jul 2, 2020 via Android
    12
    @pytth
    感觉是骗注册(滑稽
    kop1989
    kop1989
    Jul 2, 2020
    13
    @guolaopi #11 你可以理解为这个交互也包含用本公众号 appid 申请 code 的网页
    guolaopi
    guolaopi
    Jul 2, 2020
    14
    @kop1989 #13
    但是前提不是首先得是“关注者”,之后才消息交互吗。。
    kop1989
    kop1989
    Jul 2, 2020
    15
    @guolaopi #14 😂这个可能就是微信自己产品设计和程序不匹配的问题了。微信的文档坑很多。
    guolaopi
    guolaopi
    Jul 2, 2020
    16
    @kop1989
    我一直理解 OpenId 的逻辑是用户 X 关注了公众号 A 的时候微信服务器生成一个 OpenId 。。。

    照你说的逻辑难道微信是提前(或者每有人创建一个公众号的时候)就为 X 生成了关于 A 的 OpenId 在那放着,
    不管 X 有没有关注 A,openId 都存在?

    那微信服务器压力是不是有点大。。。。
    haiyan
    haiyan
    Jul 2, 2020
    17
    静默授权只能拿到 OPENID,其他的信息都拿不到的
    Waterchestnut
    Waterchestnut
    OP
    Jul 2, 2020
    18
    @kop1989 open id 不授权怎么拿到?求解
    Waterchestnut
    Waterchestnut
    OP
    Jul 2, 2020
    19
    @guolaopi 不是推广。。。
    guolaopi
    guolaopi
    Jul 2, 2020 via Android
    20
    @haiyan
    拿到 openId 后
    GET 调用: https://api.weixin.qq.com/cgi-bin/user/info?access_token=Token&openid=openid&lang=zh_CN 这个接口,
    可以获取到用户信息,刚用 PostMan 测的。😀
    guolaopi
    guolaopi
    Jul 2, 2020 via Android
    21
    @Waterchestnut
    微信文档,静默授权,可以的。
    用户感觉是调到一个网址再跳回来,基本上无感。
    annielong
    annielong
    Jul 2, 2020
    22
    静默授权,一直用这个,可以获取基本信息,不管是否关注公众号,openid 感觉像是个人原始微信号和公众号 id 结合生成的,
    kamal
    kamal
    Jul 2, 2020
    23
    如果你授权过同一个微信开放平台的其他公众号,就会生成 unionId,同时记录下你的个人信息;
    当前公众号(也绑定在同一个开放平台)只需要静默授权就能获得 openId,用 openid 可以查询到 unionId,再查询到你的个人信息,展示出来。
    Waterchestnut
    Waterchestnut
    OP
    Jul 2, 2020
    25
    @helone 我记得 2019 上半年的时候微信停用了静默授权
    Waterchestnut
    Waterchestnut
    OP
    Jul 2, 2020
    26
    @helone 我看下
    Waterchestnut
    Waterchestnut
    OP
    Jul 2, 2020
    27
    @pytth 是的,我是这么理解的
    Waterchestnut
    Waterchestnut
    OP
    Jul 2, 2020
    28
    @swuzjb 感谢,我看下
    Waterchestnut
    Waterchestnut
    OP
    Jul 2, 2020
    29
    @guolaopi 我是关注后点开的,没有关注的 case 没有试过,但是我取消关注,再次点卡又是依然能拿到头像昵称
    Waterchestnut
    Waterchestnut
    OP
    Jul 2, 2020
    30
    @haiyan union id 能拿到吗?
    Waterchestnut
    Waterchestnut
    OP
    Jul 2, 2020
    31
    @guolaopi 这个是要 acess Token 的,这个前端拿不到的,这个 access Token 微信官方不建议给到前端,会有风险的
    swuzjb
    swuzjb
    Jul 2, 2020
    32
    @Waterchestnut 取消关注后 OpenId 也不会消失 openId 是 公众号 和 微信用户的 唯一凭证 应该是有个生成规则的,肯定不是自增的 感觉是个可逆的
    hhyyd
    hhyyd
    Jul 2, 2020
    33
    简单信息不需要授权就可以获取到基本的头像昵称等信息。但是获取 openid 的话,是需要授权的吧。
    d5
    d5
    Jul 3, 2020 via iPhone
    34
    scope=snsapi_base 无论用户关注与否,都可以获得这个用户在你的公众号的唯一 openid 的。下面是个我个人的演示,这是一个图像处理小工具,就是用的服务号 snsapi_base 获取用户 openid 。

    https://photo.opencool.cn
    sayitagain
    sayitagain
    Jul 3, 2020
    35
    sayitagain
    sayitagain
    Jul 3, 2020
    36
    @guolaopi 获取 access_token 这一步就已经可以拿到 openID 了.openID 这个东西无需生成,本来就有一套用户与公众号之间的唯一算法.
    sayitagain
    sayitagain
    Jul 3, 2020
    37
    @hhyyd 不需要,code 换取 access_token 的时候就可以拿到
    guolaopi
    guolaopi
    Jul 3, 2020
    38
    @sayitagain
    好的,学到了~
    zhuweiyou
    zhuweiyou
    Jul 3, 2020
    39
    1 、拿 openid 可以静默授权,不需要用户同意。
    2 、如果你关注了这个公众号,openid 和昵称头像这些,不需要同意,都可以拿到,有 API 的。
    cbasil
    cbasil
    Jul 3, 2020
    40
    1,通过 https://open.weixin.qq.com/connect/oauth2/authorize 跳转拿到 openid,
    2, 通过接口拿到用户昵称,头像,这样就 OK 了。
    3,如果想获取用户手机号啥的,就需要用户同意才行
    yc8332
    yc8332
    Jul 3, 2020
    41
    静默授权可以拿到 openid,要头像昵称就需要弹窗去授权了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   949 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 20:13 · PVG 04:13 · LAX 12:13 · JFK 15:13
    ♥ Do have faith in what you're doing.