美文网首页
网页授权是什么?

网页授权是什么?

作者: 老街老街 | 来源:发表于2019-07-10 01:31 被阅读0次

    文章来源:[https://www.jianshu.com/p/5b4b009a0864] 感谢作者[兴尽晚归舟]的文章,给我起到了指点迷津的作用。

    微信也是一个浏览器

    首先,对于微信开发者来说,把微信称作是一个浏览器是丝毫没有问题的。如果你现在是在使用微信来阅读我现在的这篇文章,那么你就是在把微信当作一个web浏览器来使用,因为这篇文章也是写在一个网页上的。

    那么网页授权是什么?话还得从头说起...

    在微信上浏览一个网页的时候发生了什么

    既然微信是一个浏览器,那么理论上所有的网页,都是可以使用微信来访问的。假如一个公众号运营者想要向自己的用户提供一些网页服务,那么直接把网址链接放在公众号的菜单按钮或者图文推送就可以了。

    但是好像少了一点什么...

    现在一个铁杆粉丝通过公众号来访问网页,那么问题来了:

    开发者:你是谁啊?
    用户:你的铁杆粉丝啊!不是说粉丝找你就有小礼物吗?
    开发者:你谁啊?凭什么知道你是铁杆粉丝啊?

    对,少了一个用户ID.

    上一篇文章我们提到过OpenID是一个用户在微信公众号里面的唯一身份标识,那么最合理的解决方案就是使用OpenID来标识用户。最早的解决方案是这样的:

    1. 用户点击公众号菜单
    2. 微信服务器告知开发者:

    大哥,有个用户点咱们菜单了,这家伙OpenID是xxxx

    1. 开发者告诉微信服务器:

    给他一个url让他访问,顺便把他信息写在url里面

    4.用户获得一个带有自己身份信息的定制的url,例如:

    www.baidu.com?name=隔壁老王xxxx

    5.用户使用定制的url访问网页

    开发者:哎呦这是谁啊?来就来呗还带东西!哦原来是老王啊,失敬失敬!来给您一个cookie,下次来不用带东西我都知道是你!

    但是这种做法有一些风险,第一是cookie经常会被老王弄丢,第二条就更严重了:甭管是谁,只要通过“www.baidu.com?name=隔壁老王xxxx”这个网址来访问,都会被当成隔壁老王来对待。

    那么怎么做才能比较安全呢?总不能让用户再单独注册一个帐号吧?不是说好了 OpenID是唯一标识吗?还要再注册一个帐号来登录?人与人之间最重要的信任呢?

    这时候就需要有个东西来解决问题了,我们今天的主角——网页授权.

    网页授权正传

    网页授权是专门用来解决上述问题的,除此之外,这哥们儿还带来了许多额外的小玩意儿,我们慢慢说来。

    首先,网页加载了网页授权之后,用户使用微信来访问网页,交互信息是这样的:

    网页授权:大哥,人来访问你的网页了,OpenID是xxxx,你看着办吧!

    以上是普通青年模式,文艺青年略有不同,还想要获得用户的更多信息,例如昵称、头像、性别等等,这个时候微信网页授权有点犹豫:

    我还是先问问用户吧...

    所以,如果开发者想要获得更多的用户信息,则会先跳转到微信的一个页面,这个页面你肯定不陌生,它长这样:


    image.png

    好,现在如果用户点击了确认登录按钮,网页就可以获得用户的各项公开信息了。如果开发者想获得用户的更多信息,比如说手机号码、家庭住址、电子邮箱,对不起,这个网页授权帮不上忙。

    微信网页开发的更多小玩意儿
    除了通过网页授权获取用户信息之外,微信还为前端开发者提供了一些小工具,包括获取用户地理位置、读取用户本地图片或调用摄像头拍照、调用话筒采集声音、获取网络状态、显示或隐藏页面分享按钮、调用微信扫一扫功能、调用微信卡券、微信支付、获取用户页面分享事件等一系列功能。这些被称为JS-SDK。下一篇文章,将会讲述JS-SDK的一些知识。

    晚安。

    相关文章

      网友评论

          本文标题:网页授权是什么?

          本文链接:https://www.haomeiwen.com/subject/fuiqkctx.html