分享

内嵌式js微信扫码登录及自定义样式

 阳关旧友 2022-03-30

关于微信扫码登录网站的功能介绍,请阅读官方文档【网站应用微信登录开发指南】

根据官方文档我们知道微信扫码登录有两种方式

一种是跳转到一个大黑屏二维码界面进行扫码登录:

(参见博客:PHP实现跳转式微信扫码登录网站 )

另外一种是把二维码内嵌到页面中,这样可以自定义一些样式,例如二维码的大小、是否有标题等,默认效果如下:

(官方文档说的挺好,JS微信登录主要用途:网站希望用户在网站内就能完成登录,无需跳转到微信域下登录后再返回,提升微信登录的流畅性与成功率)

实现代码如下:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www./1999/xhtml">
  3. <head>
  4. <title>内嵌式 - 微信扫码登录</title>
  5. <!-- 引入微信扫码登录js文件 -->
  6. <script type="text/javascript" src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
  7. </head>
  8. <body>
  9.   <!-- 放置二维码的div -->
  10.   <div id="login_container"></div>
  11. </body>
  12. <script type="text/javascript">
  13. var obj = new WxLogin({
  14.   self_redirect:true,
  15.   id:"login_container", 
  16.   appid: "wxbdc5610cc59c1631", 
  17.   scope: "snsapi_login", 
  18.   redirect_uri: encodeURIComponent("http://"+window.location.host+"/..."), 
  19.   state: Math.ceil(Math.random()*1000), 
  20.   style: "black",
  21.   href: ""
  22. });
  23. </script>
  24. </html>

参数说明(摘自官方文档):

这里的href参数可以自定义扫码样式,一种据说是引入一个https地址的css文件例如:href: "https:///test.css",由于没有配置https所以没有实践,另一种是把样式代码进行base64加密放到href参数中。

  1. .impowerBox .qrcode {width: 200px;}
  2. .impowerBox .title {display: none;}
  3. .impowerBox .info {width: 200px;}
  4. .status_icon {display: none}
  5. .impowerBox .status {text-align: center;}

我们用站长工具对样式代码进行base64加密:

修改href参数,格式:href: "data:text/css;base64,base64加密后的字符串"

href:"data:text/css;base64,LmltcG93ZXJCb3ggLnFyY29kZSB7d2lkdGg6IDIwMHB4O30NCi5pbXBvd2VyQm94IC50aXRsZSB7ZGlzcGxheTogbm9uZTt9DQouaW1wb3dlckJveCAuaW5mbyB7d2lkdGg6IDIwMHB4O30NCi5zdGF0dXNfaWNvbiB7ZGlzcGxheTogbm9uZX0NCi5pbXBvd2VyQm94IC5zdGF0dXMge3RleHQtYWxpZ246IGNlbnRlcjt9"

样式如下,二维码变小了,默认的标题去掉了:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多