wxlogin详解

发布时间:2023-05-21

一、wxlogin是什么意思

wxlogin是一种微信登录授权方式,可以让用户用自己的微信账号登录第三方网站或应用。使用wxlogin可以免去繁琐的注册流程,提高用户的使用体验,同时也方便第三方应用获取用户的微信信息。

二、wxlogincode

wxlogincode是wxlogin生成的随机字符串,用于保证其它参数的真实性。在授权登录流程中,第三方应用会先生成wxlogincode,然后将其传递给微信登录授权页面。微信登录授权页面会将wxlogincode与微信登录账号和密码等信息一起提交给微信服务器进行授权。授权成功后,微信服务器会把wxlogincode传递回第三方应用后台系统,第三方应用后台系统可以通过wxlogincode获取用户信息。

function wxlogin() {
  var wxlogincode = getRandomString();//生成随机字符串
  var wxloginUrl = 'https://weixin.qq.com/login.php?wxlogincode=' + wxlogincode;
  window.open(wxloginUrl, 'wxloginWindow');
}

三、wxlogin.js

wxlogin.js是一个封装好的微信登录授权的JavaScript库,可以方便地实现微信登录授权流程。使用wxlogin.js,第三方应用只需要引入wxlogin.js文件,然后调用wxLogin函数即可。wxlogin.js文件中封装了微信登录授权流程中所需的js方法,例如生成wxlogincode、打开微信授权页面等。

function wxLogin() {
  var obj = new WxLogin({
    id: 'wxlogin_container',
    appid: 'wx123456abcd78',  // 微信分配的应用ID
    scope: 'snsapi_login',
    redirect_uri: 'http://www.example.com/callback', // 授权后重定向的回调链接地址
    state: '',  // 用于保持请求和回调的状态,这个参数一般用于防止CSRF攻击,可不传
    style: '',  // 自定义样式,不传默认为白色背景、黑色字体、扁平化样式
    href: ''   // 可选,如果需要引入自定义的样式文件,可传入样式文件的地址
  });
}

四、wxlogin出错

如果出现wxlogin无法登陆,可能有以下问题:

  1. 微信登录授权的appid和redirect_uri与实际不一致;
  2. 微信登录授权被拦截,需要设置referrer安全策略;
  3. 微信用户账号或密码错误,无法完成授权登录。

五、wxlogin不调用

wxlogin不调用可能有以下原因:

  1. 没有正确引入wxlogin.js文件;
  2. 没有正确设置回调地址或回调地址不可用;
  3. 微信登录授权被拦截,需要设置referrer安全策略;
  4. 微信登录授权被拦截,需要设置微信API域名列表;

六、wxlogin.dll

wxlogin.dll是微信登录的动态链接库,主要是为了方便开发者将微信登录授权集成到.NET平台的应用程序中。使用wxlogin.dll,开发人员可以通过调用相应的API实现微信登录授权流程,例如获取wxlogincode、使用wxlogincode获取微信用户信息等。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WeixinLib;
namespace WXLoginDemo
{
  class Program
  {
    static void Main(string[] args)
    {
      var wxLoginApi = new WxLoginApi("wx123456abcd78", "wx123456abcd78", "http://www.example.com/callback");
      string wxloginCode = wxLoginApi.GetWxLoginCode();
      Console.WriteLine(wxloginCode);
      var wxUserInfo = wxLoginApi.GetWxUserInfo(wxloginCode);
      Console.WriteLine(wxUserInfo.ToString());
    }
  }
}

七、wxlogin出错是啥意思

wxlogin出错可能有以下原因:

  1. 微信登录授权的appid和redirect_uri与实际不一致;
  2. 微信登录授权被拦截,需要设置referrer安全策略;
  3. 微信用户账号或密码错误,无法完成授权登录。

八、wxlogin.js vue

在使用vue.js时,可以封装一个wxlogin组件,方便在多个页面中复用。在wxlogin组件中,可以引入wxlogin.js并调用wxLogin函数实现微信授权登录。同时,可以定义相应的props属性,传入appid、redirect_uri等参数。

const wxloginComponent = {
  template: `
    <div>
      <div id="wxlogin_container"></div>
    </div>
  `,
  props: {
    appid: {
      type: String,
      required: true
    },
    redirect_uri: {
      type: String,
      required: true
    },
    scope: {
      type: String,
      default: 'snsapi_login'
    },
    state: {
      type: String,
      default: ''
    },
    style: {
      type: String,
      default: ''
    },
    href: {
      type: String,
      default: ''
    }
  },
  mounted() {
    const wxloginObj = {
      id: 'wxlogin_container',
      appid: this.appid,
      redirect_uri: this.redirect_uri,
      scope: this.scope,
      state: this.state,
      style: this.style,
      href: this.href
    };
    new WxLogin(wxloginObj);
  }
};

九、wxlogin在哪里打开选取

wxlogin在哪里打开选取取决于第三方应用的需求。通常来说,可以在页面的顶部或中部设置一个微信登录入口,用户点击后即可打开微信登录授权页面。在一些需要用户登录才能使用的应用中,也可以直接在应用首页弹出微信登录授权窗口,让用户在打开应用时就完成登录授权。