当前位置:首页 > uni-app

uniapp 登录功能

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

实现登录功能的基本流程

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

前端页面设计

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

<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 并跳转页面。

登录状态管理

使用 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 并发送至后端。

uniapp 登录功能

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

安全注意事项

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

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

相关文章

前端实现拖拽功能vue

前端实现拖拽功能vue

使用 HTML5 拖放 API 在 Vue 中可以通过 HTML5 的原生拖放 API 实现拖拽功能。需要监听 dragstart、dragover 和 drop 事件。 <template&…

uniapp应用市场

uniapp应用市场

uniapp应用市场概述 Uniapp作为跨平台开发框架,支持将代码编译到iOS、Android、Web及各类小程序平台。其应用市场(插件市场)是开发者获取扩展插件、模板、组件的重要资源库,涵盖UI组…

uniapp怎么启动

uniapp怎么启动

启动UniApp项目的步骤 确保已安装Node.js(建议版本12+)和HBuilderX(官方IDE)。若未安装,需先下载并配置环境。 安装开发工具 从HBuilderX官网下载对应操作系统的版本…

uniapp部署到服务器

uniapp部署到服务器

部署准备 确保本地开发环境已完成项目构建,生成静态文件(H5端为/dist/build/h5目录)。检查服务器环境是否安装Nginx/Apache等Web服务软件,并配置好域名解析。 上传文件 通过…

uniapp设置title

uniapp设置title

设置页面标题的方法 在UniApp中设置页面标题可以通过以下几种方式实现,适用于不同场景和需求。 通过pages.json配置 在pages.json文件中,可以为每个页面单独配置导航栏标题。找到对…

uniapp斑马

uniapp斑马

uniapp 斑马相关问题解答 uniapp 斑马打印机连接与使用 uniapp 支持通过蓝牙或网络连接斑马打印机,需要借助原生插件或第三方 SDK。以下为常见方法: 蓝牙连接方式 安装 uni-…