08.微博绑定用户页面

微博回调空页面

1.页面路径components/oauth.vue

<template>
  <div>
    <div v-show="visiable">
      绑定用户 用户名:
      <input type="text" v-model="username" @blur="check_username" />
      <span>{{ username_message }}</span>
      密码: <input type="password" v-model="password" />
      <button @click="bindUser">绑定</button>
    </div>
  </div>
</template>
<script>
import {
  oauth_callback_post,
  oauth_binduser_post,
  user_count,
} from "./axios_api/api";
export default {
  data() {
    return {
      visiable: false, // 绑定用户窗口
      uid: "", // weibo_uid
      username: "",
      password: "",
      username_message: "",
      username_error: false,
    };
  },
  mounted() {
    this.getCode();
  },
  methods: {
    // 判断用户名
    check_username() {
      console.log("判断用户名");
      console.log(this.username == "");
      var reg = new RegExp(/^[a-zA-Z0-9_-]{4,16}$/); //字符串正则表达式 4到14位(字母,数字,下划线,减号)
      if (this.username == "") {
        this.username_message = "用户名不能为空";
        this.username_error = true;
        return false;
      }
      if (!reg.test(this.username)) {
        this.username_message = "用户名格式不正确";
        this.username_error = true;
        return false;
      } else {
        // 去后端检查用户名使用数量
        user_count({ type: "username", data: this.username }).then((res) => {
          console.log(res);
          if (res.data.count > 0) {
            this.username_message = "用户名已存在, 请输入密码";
            this.username_error = false;
          } else {
            this.username_message = "用户名可用, 将创建新用户,请输入密码";
            this.username_error = false;
          }
        });
      }
    },
    // 获取微博返回的code
    getCode() {
      // 获取url中的code 信息
      // 当前url 是 http://mysyl.com:8080/oauth/callback/?
      code = fe6cbe07708aecf4a2b3d942ed692c4c;
      let code = this.$route.query.code;
      console.log(this.$route.query);
      // 给后端发送code
      let params = { code: code };
      oauth_callback_post(params).then((resp) => {
        console.log(resp);
        // code: 0
        // msg: "授权成功"
        // data: {type: "1", uid: "7410919278"}
        if (resp.data.type == "0") {
          // code: 0
          // msg: "登录成功"
          // data: {
          // authenticated: "true"
          // email: ""
          // id: 1
          // name: "admin"
          // role: null
          // token:
          // "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6ImFkbWluIiw
          // iZXhwIjoxNTk3OTAwNTcyLCJlbWFpbCI6IiIsIm9yaWdfaWF0IjoxNTk3ODE0MTcyfQ.aQT7GSR_xQBPM
          // lB4_k8-zTHnx0ow3OC2KHa3C8MgilY"
          // type: "0"
          // username: "admin"}
          let res = resp.data;
          localStorage.setItem("username", res.username);
          // localStorage.setItem('img', res.img)
          localStorage.setItem("token", res.token);
          localStorage.setItem("uid", res.id);
          this.login_username = res.username;
          this.opened = false;
          // alert(res.message)
          this.$router.push("/");
        }
        if (resp.data.type == "1") {
          this.visiable = true;
          this.uid = resp.data.uid;
        }
      });
    },
      
    // 绑定用户方法  
    bindUser() {
      if (this.username_error) {
        return;
      }
      // 发送 用户名, 密码, weibo_uid 到后端接口, 进行绑定
      let params = {
        username: this.username,
        password: this.password,
        weibo_uid: this.uid,
      };
      oauth_binduser_post(params).then((resp) => {
        console.log(resp);
        let res = resp.data;
        localStorage.setItem("username", res.username);
        // localStorage.setItem('img', res.img)
        localStorage.setItem("token", res.token);
        localStorage.setItem("uid", res.id);
        this.login_username = res.username;
        this.opened = false;
        // alert(res.message)
        this.$router.push("/");
      });
    },
  },
};
</script>
posted @ 2020-10-10 17:59  Harry·F  阅读(179)  评论(0编辑  收藏  举报