微信为桌面网站提供了一个非常方便的QR-code login option(对不起,仅中文)。基本上,您只需使用微信扫描代码,然后单击确定,然后登录。

但是,我在为通过移动设备访问同一网站时如何实现相同功能而苦苦挣扎?

最佳答案

我处在同样的情况下,我一直从Google那里得到这个 Unresolved 问题,所以我将根据目前的情况尝试提供更多信息。
首先让我们澄清一下,我们正在谈论的是中国国家范围内的微信。与其他国家相比,中国的微信具有更多的功能。

基本上有3种方法可以在您的网站上使用微信登录:

  • 用QR码登录微信。这是为桌面网站设计的,从我的角度来看,这是登录微信用户的最简单方法
  • 通过微信移动应用程序登录到移动网站。这是用户使用移动微信应用程序时,然后单击移动微信应用程序内的链接,该链接将用户重定向到网站的移动版本,但仍在微信应用程序的范围内。就像您在Gmail移动应用程序上一样,然后单击链接,就可以看到它,但您仍将在移动应用程序中,但仍在浏览移动网站。
  • 通过Web浏览器从移动站点登录微信。在这种情况下,用户只是要转到移动站点,并且可以使用微信OAuth 2.0登录名登录该站点。这类似于您在第三方站点上时的Facebook登录名或Google登录名。

  • 现在让我们开始技术。

    QR码登录

    可以在QR Code login documentation用英语获得文档
    我不会在这里解释这个问题,因为这并不是真正的问题。

    只能通过移动网站使用OAuth 2.0 进行微信登录

    [编辑] 看来我们不能直接在网站上使用来自微信的OAuth。仅当从微信移动应用程序中加载网站时才能执行此操作。请引用以下部分:“通过微信移动应用程序登录微信”

    Documentation from qq.com使用Google Transalate应该可以为您提供基础知识。有3个主要步骤:
    -步骤1:用户同意,访问代码
    -步骤2:代码页以换取授权access_token
    -步骤3:提取用户信息

    这还假设您已根据需要的appid,作用域和状态正确设置了API访问权限

    通过微信移动应用程序
    从微信登录到微信,通过移动应用程序通过微信登录

    为了实现这种登录方式,您必须记住,网站需要在微信移动应用程序中加载。

    我能找到的最简单方法是根据网站网址生成QR码,然后使用微信应用程序扫描QR码(可以选择使用移动应用程序进行扫描)。要生成QR码,您可以使用http://www.qr-code-generator.com中的在线工具

    从微信应用程序浏览您的移动网站后,流程将是当用户转到您网站的登录页面时,您会将用户重定向到微信oauth网址。

    有关此文档,请访问https://mp.weixin.qq.com/wiki?id=mp1421140842&highline=scope
    网址将类似于:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

    SCOPE可以是“nsapi_base”或“nsapi_userinfo”。 “nsapi_userinfo”将使您获得有关该用户的更多信息,但实际上微信并没有太多共享。他们将不会共享电子邮件或手机号码。

    STATE只是您生成的随机字符串,允许您在页面重定向后在自动上升后对其进行匹配。

    APPID是您的微信帐户中的应用程序api。如果您还没有APPID,则有2个可用选项。创建一个企业帐户(生产帐户)或创建一个沙箱帐户。
    您可以在https://mp.weixin.qq.com上注册;
    或对于测试沙箱帐户:
    http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
    (仅提供中文版本)

    因此,将发生的情况是,当用户重定向到https://open.weixin.qq.com/connect/oauth2/authorize时,他们将不得不同意与您的移动网站共享其信息。一旦他们同意,用户将被重定向到您选择的URL。 (请参见redirect_uri = REDIRECT_URI参数)

    然后你可以调用https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
    获取用户信息。

    ACCESS_TOKEN是使用APPID和SECRET并调用api生成的 token :https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=[APPID]&secret=[SECRET]
    同样,如上所述,您注册到微信帐户后即可使用APPID和SECRET。

    而且因为我们喜欢英语,所以http://admin.wechat.com/wiki/index.php似乎有一个可用的英语维基。
    它不如中文版那么出色和完整,但它是一个更好地了解事物的开始。

    获取用户信息后,您只需要在移动网站上实现类似以下内容的逻辑即可:
  • 自动登录用户(如果他们已经在
  • 网站上拥有一个帐户)
  • 显示注册表格,其中包含您获得的预先填充的用户信息,并提示用户输入网站所需的其他信息。


  • 希望这将帮助一些迷失的微信开发人员尝试实现相同的功能。我也很高兴能从其他人那里获得帮助,以完成此答案。

    谢谢你。

    10-08 06:32