uni-app 希望官方出一个基于云端一体登录模板的博客项目

发布于 1周前 作者 vueper 来自 Uni-App

uni-app 希望官方出一个基于云端一体登录模板的博客项目

基于 云端一体登录模板的博客,功能包含注册登录,发布博客,删除博客,收藏博客等等。基于这个https://ext.dcloud.net.cn/plugin?id=13

2 回复

这个是插件大赛的鼓励作品,希望有插件作者参赛,提交这类插件


了解您的需求,虽然官方可能尚未提供具体的基于云端一体登录模板的uni-app博客项目,但我可以为您展示一个简化的示例代码框架,帮助您理解如何实现这一功能。以下是一个基于uni-app和云开发(如阿里云、腾讯云等)的登录模块和博客列表显示的基础实现思路。

1. 初始化uni-app项目

首先,确保您已经安装了HBuilderX并创建了一个新的uni-app项目。

2. 配置云开发

在HBuilderX中,选择“云开发”->“开通云开发环境”,按照指引配置您的云环境。

3. 登录模块

pages目录下创建一个login页面,实现用户登录功能。

login.vue

<template>
  <view>
    <input v-model="username" placeholder="用户名" />
    <input type="password" v-model="password" placeholder="密码" />
    <button @click="login">登录</button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      username: '',
      password: ''
    };
  },
  methods: {
    async login() {
      try {
        const res = await uniCloud.callFunction({
          name: 'login',
          data: {
            username: this.username,
            password: this.password
          }
        });
        if (res.result.success) {
          uni.setStorageSync('token', res.result.token);
          uni.navigateTo({ url: '/pages/blog/blog' });
        } else {
          uni.showToast({ title: '登录失败', icon: 'none' });
        }
      } catch (e) {
        console.error(e);
      }
    }
  }
};
</script>

云函数 login/index.js

exports.main = async (event, context) => {
  const { username, password } = event;
  // 这里进行用户名和密码的验证逻辑,比如与数据库比对
  // 假设验证通过,返回token
  if (username === 'admin' && password === '123456') {
    return {
      success: true,
      token: 'your_token_here'
    };
  } else {
    return {
      success: false
    };
  }
};

4. 博客列表页面

pages目录下创建一个blog页面,用于显示博客列表。

blog.vue

<template>
  <view>
    <button @click="getBlogs">获取博客列表</button>
    <view v-for="blog in blogs" :key="blog.id">
      <text>{{ blog.title }}</text>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      blogs: []
    };
  },
  methods: {
    async getBlogs() {
      const token = uni.getStorageSync('token');
      if (!token) {
        uni.showToast({ title: '请先登录', icon: 'none' });
        return;
      }
      try {
        const res = await uniCloud.callFunction({
          name: 'getBlogs',
          data: {
            token: token
          }
        });
        this.blogs = res.result.blogs;
      } catch (e) {
        console.error(e);
      }
    }
  }
};
</script>

云函数 getBlogs/index.js

exports.main = async (event, context) => {
  const { token } = event;
  // 这里进行token验证逻辑,比如检查token是否有效
  // 假设token有效,返回博客列表
  return {
    blogs: [
      { id: 1, title: '博客1' },
      { id: 2, title: '博客2' }
    ]
  };
};

以上代码仅为示例,实际项目中需要根据具体需求进行完善和调整,包括错误处理、安全验证等。

回到顶部