记录一下怎么使用 Leancloud 完善 Auth 模型实现登陆注册接口

310 阅读1分钟

1、先安装引入配置好

yarn add leancloud-storage

  • 在 src/models/index.js 里操作
  • import AV, { Query, User } from "leancloud-storage";
AV.init({
  appId: "xxxxxxxxxxxxxxxxxx",
  appKey: "yyyyyyyyyyyyyyyyyyy",
  serverURL: "https://zzzzzzzzzz"
});
  • 上面的 Id、 Key、 serverURL 均是应用凭证处能直接复制

image.png

2、再测试一下能否正常使用再写后面的代码

  • 加上以下代码 image.png

  • 这里我在 src/index.js 里引入进行测试

image.png

  • 保存后打开控制台,刷新页面,即可看到打印出注册成功,说明可以用了

image.png

3、现在可以完善后面的代码了(写接口)

  • src/models/index.js
const Auth = {
  register(username, password){
    let user = new User();
    user.setUsername(username);
    user.setPassword(password);
    return new Promise((resolve, reject)=>{
      user.signUp().then(loginedUser => resolve(loginedUser), error => reject(error))
    });
  },
  login(username, password){
    return new Promise((resolve, reject) => {
      User.logIn(username, password).then(loginedUser => resolve(loginedUser), error => reject(error));
    })
  },
  logout(){
    User.logOut();
  },
  getCurrentUser(){
    return User.current();
  }
};

export {
  Auth
};

image.png

4、使用接口

  • 真正用到这些接口的地方,其实只有 src/stores/auth.js 这里
  • 完善代码
@action login() {
  return new Promise((resolve, reject) => {
    Auth.login(this.values.username, this.values.password)
      .then(user => {
        console.log('登录成功');
        resolve(user);
      }).catch(err => {
        console.log('登录失败');
        reject(err);
    })
  })
}

@action register() {
  return new Promise((resolve, reject) => {
    Auth.register(this.values.username, this.values.password)
      .then(user => {
        console.log('注册成功');
        resolve(user);
      }).catch(err => {
      console.log('注册失败');
      reject(err);
    })
  })
}

@action logout(){
  Auth.logout()
}

image.png

5、完善注册页面

  • 主体跟 Login.js 基本一致
  • 完善代码
const { AuthStore } = useStores();

const onFinish = (values) => {
  console.log('Success:', values);
  AuthStore.setUsername(values.username);
  AuthStore.setPassword(values.password);
  AuthStore.login()
    .then(()=>{
      console.log('注册成功,跳转到首页')
    }).catch(()=>{
      console.log('注册失败,什么都不做')
  })
};

image.png

  • 成功

image.png

6、完善登录页面

  • 与注册页面相似,直接改代码
  • 完善代码
const {AuthStore} = useStores();

const onFinish = (values) => {
  console.log('Success:', values);
  AuthStore.setUsername(values.username);
  AuthStore.setPassword(values.password);
  AuthStore.login()
    .then(()=>{
      console.log('登录成功,跳转到首页')
    }).catch(()=>{
      console.log('登陆失败')
  })
};

image.png

  • 输入刚刚测试注册时写的账号与密码

  • 成功 image.png