微信登录移动网站

Mic*_*pin 5 authentication qr-code oauth web wechat

对于桌面网站,微信有一个非常方便的QR码登录选项(对不起,只有中文).基本上你只需用微信扫描代码,点击确定,然后你就登录了.

但是,当通过手机访问同一个网站时,我正在努力实现相同的功能?

Rem*_*ney 12

我处于相同的情况,我一直从谷歌那里得到这个未解决的问题所以我会尝试根据我到目前为止提供的更多信息.首先让我们澄清一下,我们正在谈论中国国家范围内的微信.与其他国家相比,中国的微信具有更多功能.

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

  • 用QR码登录微信.这更适用于桌面网站,是从我的角度登录微信用户的最简单方法
  • 微信通过微信移动应用程序登录移动网站.这是当用户使用移动微信应用程序,然后点击移动微信应用程序中的一个链接,该链接将用户重定向到该网站的移动版本,但仍在微信应用程序的范围内.只是看到这就像你在Gmail移动应用程序上,然后点击一个链接,你仍然会在移动应用程序中浏览移动网站.
  • 微信通过网络浏览器从手机网站登录.在这种情况下,用户只需访问移动网站,即可使用WeChat OAuth 2.0登录网站登录.当您在第三方网站上时,这类似于Facebook登录或Google登录.

现在让我们去技术.

QR码登录

QR Code登录文档中提供英文文档 我不会在这里解释,因为它不是真正的问题.

微信仅从移动网站使用OAuth 2.0登录

[编辑]我们似乎无法直接在网站上使用微信中的OAuth.只有在微信移动应用程序中加载站点时才能执行此操作.请参考以下部分:"通过微信移动应用程序登录微信"

来自qq.com的文档使用谷歌Transalate应该为您提供基础知识.主要有三个步骤: - 步骤1:用户同意,访问代码 - 步骤2:代码页以换取授权access_token - 步骤3:提取用户信息

这也假设您已经正确设置了API访问权限,因为您需要appid,scope和state

微信通过移动应用程序通过微信移动应用程序微信登录到手机网站

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

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

从Wechat应用程序浏览您的移动网站后,过程将是当用户访问您网站的登录页面时,您将用户重定向到wechat oauth网址.

有关这方面的文档,请访问https://mp.weixin.qq.com/wiki?id=mp1421140842&highline=scope .网址如下:https://open.weixin.qq.com/connect/oauth2/授权?APPID = APPID&REDIRECT_URI = REDIRECT_URI&RESPONSE_TYPE =代码&范围= SCOPE&状态=状态#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 = andSandbox / login (仅提供中文版)

因此,当用户重定向到https://open.weixin.qq.com/connect/oauth2/authorize时,他们将不得不同意与您的移动网站共享他们的信息.一旦他们同意,用户将被重定向到您选择的网址.(参见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:https://api.weixin.qq.com/cgi-bin/token?render_type = client_credential&appid = [ APPID ]& secret = [SECRET ]再次,APPID如上所述,您在注册微信账户后可以使用SECRET.

因为我们喜欢英语,所以看起来有一个英文维基可以在http://admin.wechat.com/wiki/index.php上找到 它并不像中文版那么好和完整,但它是一个开始更好地理解事物.

获得用户信息后,您只需将移动站点上的逻辑实现为:

  • 如果用户已在该站点上拥有帐户,则自动登录该用户
  • 使用您获得的预填充用户信息显示注册表单,并提示用户输入您网站所需的额外信息.

希望这将有助于一些失去的微信开发人员试图实现相同的.我也很乐意得到别人的帮助来完成这个答案.

谢谢.


小智 -3

当你切换到微信二维码时,微信会生成一个认证二维码并链接到长拉服务器,当你的手机二维码扫描后,点击链接,就会触发长拉服务器认证流程,让你的浏览器认证并重定向。

我在github上重现了微信流程,欢迎贡献。

https://github.com/clonn/QRLoing_reproduct

  • 如果您的手机上显示二维码,如何扫描它 (2认同)