安装

  1. yarn add leancloud-storage

配置

注意:leanCloud推荐使用国际版,国内版需要自定义域名才能使用https
文档:安装sdk
文档:初始化
初始化需要的 appId 在创建的项目的设置-应用凭证里

  1. import AV, { Query, User } from 'leancloud-storage';
  2. // 初始化
  3. AV.init({
  4. appId: "rp4figvP1pteyxRAyzYjRSHo-gzGzoHsz",
  5. appKey: "SsjIAupQFlvKqHtnpeOOan5j",
  6. serverURL: "https://please-replace-with-your-customized.domain.com"
  7. });

编写登录注册API

参考文档

  1. import AV, { Query, User } from 'leancloud-storage';
  2. AV.init({
  3. appId: "rp4figvP1pteyxRAyzYjRSHo-gzGzoHsz",
  4. appKey: "SsjIAupQFlvKqHtnpeOOan5j",
  5. serverURL: "https://rp4figvp.lc-cn-n1-shared.com"
  6. });
  7. const Auth = {
  8. register(username: string, password: string) {
  9. const user = new User();
  10. user.setUsername(username);
  11. user.setPassword(password);
  12. return new Promise((resolve, reject) => {
  13. user.signUp().then((user) => resolve(user), (error) => reject(error))
  14. })
  15. },
  16. login(username: string, password:string) {
  17. return new Promise((resolve, reject) => {
  18. User.logIn(username, password).then((user) => resolve(user), (error) => reject(error));
  19. })
  20. },
  21. logOut() {
  22. User.logOut();
  23. },
  24. getCurrentUser() {
  25. return User.current()
  26. }
  27. }
  28. export default Auth;

在 store 中使用登录注册API

  1. @action login() {
  2. return new Promise((resolve, reject) => {
  3. Auth.login(this.values.username, this.values.password)
  4. .then(
  5. (user) => {
  6. console.log('登录成功')
  7. resolve(user)
  8. },
  9. (err) => {
  10. console.log('登录失败')
  11. reject(err)
  12. })
  13. })
  14. }

在组件中使用 store

  1. import { useStore } from '../store';
  2. const Login: React.FC = () => {
  3. const {AuthStore} = useStore()
  4. const onFinish = (values: any) => {
  5. console.log('Success:', values);
  6. AuthStore.setUsername(values.username)
  7. AuthStore.setPassword(values.password)
  8. AuthStore.login().then((user) => {
  9. console.log(user)
  10. console.log('登录成功')
  11. }, (err) => {
  12. console.log('登录失败')
  13. console.log(err)
  14. })
  15. };
  16. // ...
  17. }