当前位置:首页 > uni-app

uniapp 登录功能

2026-02-06 01:14:12uni-app

实现登录功能的基本流程

uniapp 的登录功能通常需要结合前端页面和后端接口实现。前端负责收集用户信息并发送请求,后端验证信息并返回登录状态。

前端页面设计

创建一个登录页面,包含用户名和密码输入框以及登录按钮。可以使用 uni-easyinput 或原生 input 组件。

uniapp 登录功能

<template>
  <view class="login-container">
    <uni-forms ref="form">
      <uni-forms-item name="username">
        <uni-easyinput v-model="form.username" placeholder="请输入用户名" />
      </uni-forms-item>
      <uni-forms-item name="password">
        <uni-easyinput type="password" v-model="form.password" placeholder="请输入密码" />
      </uni-forms-item>
    </uni-forms>
    <button @click="handleLogin">登录</button>
  </view>
</template>

数据绑定和方法定义

script 部分定义表单数据和登录方法。

<script>
export default {
  data() {
    return {
      form: {
        username: '',
        password: ''
      }
    }
  },
  methods: {
    async handleLogin() {
      try {
        const res = await uni.request({
          url: 'https://your-api-endpoint/login',
          method: 'POST',
          data: this.form
        })
        if (res.data.code === 200) {
          uni.setStorageSync('token', res.data.token)
          uni.showToast({ title: '登录成功' })
          uni.navigateBack()
        }
      } catch (error) {
        uni.showToast({ title: '登录失败', icon: 'none' })
      }
    }
  }
}
</script>

后端接口对接

确保后端接口接收 usernamepassword 参数,验证成功后返回 token 和用户信息。前端收到响应后存储 token 并跳转页面。

uniapp 登录功能

登录状态管理

使用 uni.getStorageSync 检查登录状态,在 App.vue 或全局拦截器中验证。

// 全局路由拦截
uni.addInterceptor('navigateTo', {
  invoke(args) {
    const token = uni.getStorageSync('token')
    if (!token && !args.url.includes('login')) {
      uni.redirectTo({ url: '/pages/login/login' })
      return false
    }
    return true
  }
})

第三方登录集成

如需微信登录,可使用 uni.login 获取 code 并发送至后端。

uni.login({
  provider: 'weixin',
  success(res) {
    uni.request({
      url: 'https://your-api-endpoint/wechat-login',
      method: 'POST',
      data: { code: res.code }
    })
  }
})

安全注意事项

密码传输应加密,建议使用 HTTPS 协议。token 设置合理过期时间,避免长期存储敏感信息。

标签: 功能uniapp
分享给朋友:

相关文章

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

uniapp删除

uniapp删除

卸载 uniapp 项目依赖 在项目根目录下执行以下命令,移除 node_modules 和依赖锁文件: rm -rf node_modules package-lock.json 如需清理全…

php实现分页功能

php实现分页功能

PHP实现分页功能的方法 数据库查询与分页逻辑 使用SQL的LIMIT和OFFSET实现分页。假设每页显示10条数据,当前页码为$page: $perPage = 10; $page = isse…

uniapp隐藏右侧滚动条

uniapp隐藏右侧滚动条

隐藏右侧滚动条的方法 在UniApp中隐藏右侧滚动条可以通过CSS样式实现,适用于H5、小程序等平台。以下是几种常见的方法: 全局样式设置 在App.vue的全局样式中添加以下CSS代码,适用于所…

uniapp实现标题栏渐变

uniapp实现标题栏渐变

实现标题栏渐变的方法 在UniApp中实现标题栏渐变效果,可以通过修改页面的导航栏样式或使用自定义导航栏来实现。以下是几种常见的方法: 方法一:使用原生导航栏渐变 通过修改pages.json…

uniapp adb

uniapp adb

在UniApp中使用ADB的方法 ADB(Android Debug Bridge)是Android开发中常用的调试工具,可用于UniApp项目的真机调试、日志查看等操作。以下是具体使用方法: 连…