公众号 调用微信扫一扫,分享,授权登录

1.授权登录

main.js

router.beforeEach((to, from, next) => { 
  const token = localStorage.getItem('token');
  const openid = localStorage.getItem('openid');
  // console.log("token",token,"openid",openid);
  if (!openid) {
    // console.log("path",to.path);
    if (to.path == '/Auth') { 
      next()
    } else if(token){  
      next()
    } 
  }else{
    next()
  }
}) 

auth.vue

<template>
  <div>

  </div>
</template>

<script>

const murl = 'http://***';   //与公众平台里配置的一致
const url = localStorage.getItem("now_url");

export default {
  //生命周期函数
  created() {
    const code = this.GetUrlParame('code'); // 截取code   
    const state = this.GetUrlParame('state'); // 截取code  
    if (!code) {
      let redirectUrl = encodeURIComponent(murl);
      let WX_APPID = 'wx8baaff86779e06da';
      let oAuthUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${WX_APPID}&redirect_uri=${redirectUrl}&response_type=code&scope=snsapi_userinfo&state=bc17befd6d5060f16de95e38f6eaf69c&connect_redirect=1#wechat_redirect`
      window.location.href = oAuthUrl;
    } else {
      let _this = this;
      _this.$http.post(_this.$http.getCode,
            _this.$qs.stringify({
              code: code,
              state: state
            }), 
          {
          headers: {
            "Content-Type": "application/x-www-form-urlencoded"
          }
          }
      ).then(response => {
        // console.log(response.code,response);
          if(response.code==1){
            window.localStorage.setItem('token', response.data.token);
            sessionStorage.setItem('currIndex', 0);
            _this.$router.push({
                path: "/"
            });
          }else if(response.code==2){
            _this.$toast(response.msg);
            // console.log("222",response.code);
            window.localStorage.setItem('openid', response.data.wx_openid);
            // console.log(typeof(response.data)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值