当前位置:首页 > uni-app

uniapp 单点登录

2026-02-05 20:50:39uni-app

单点登录(SSO)概念

单点登录允许用户通过一次认证访问多个相互信任的应用系统。在UniApp中实现SSO通常需要结合后端服务(如OAuth2.0、JWT等)和前端逻辑。

实现方案一:基于JWT的SSO

核心流程
用户登录后,后端生成JWT令牌并返回给UniApp客户端。客户端存储令牌(如localStorage),后续请求携带该令牌进行鉴权。

代码示例(UniApp端)

uniapp 单点登录

// 登录请求
uni.request({
  url: 'https://api.example.com/login',
  method: 'POST',
  data: { username: 'user', password: '123456' },
  success: (res) => {
    if (res.data.token) {
      uni.setStorageSync('token', res.data.token); // 存储令牌
    }
  }
});

// 请求拦截(携带令牌)
uni.addInterceptor('request', {
  invoke(args) {
    args.header = {
      ...args.header,
      Authorization: `Bearer ${uni.getStorageSync('token')}`
    };
  }
});

实现方案二:基于OAuth2.0的SSO

核心流程
通过授权服务器统一认证,获取access_token。UniApp作为客户端,通过跳转授权页或静默请求完成登录。

步骤说明

uniapp 单点登录

  1. 跳转至授权页(如微信OAuth2.0):

    uni.navigateTo({
      url: 'https://auth.example.com/oauth?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI'
    });
  2. 通过redirect_uri回调解析code,换取access_token

跨域与存储注意事项

  • 域名配置:确保manifest.json中配置合法域名(如微信小程序需加入request白名单)。
  • 令牌安全:避免明文存储敏感信息,推荐使用uni.setStorageSync加密或后端校验时效性。

第三方平台集成示例(微信小程序)

通过wx.login获取code,传给后端换取用户凭证:

wx.login({
  success: (res) => {
    uni.request({
      url: 'https://api.example.com/wechat-auth',
      data: { code: res.code }
    });
  }
});

调试与优化建议

  • 使用uni.getSystemInfo检测运行环境(H5/小程序/App),适配不同平台的SSO流程。
  • 捕获uni.request的失败回调,处理令牌过期或失效场景(如跳转重新登录)。

通过上述方法,UniApp可实现高效的单点登录,具体技术选型需结合项目需求和后端架构。

标签: 单点uniapp
分享给朋友:

相关文章

uniapp教程

uniapp教程

uniapp 基础介绍 uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App、快应用等)。其核心优势在于代码复用率高,学习成本低,适合快速构建多…

uniapp怎么启动

uniapp怎么启动

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

uniapp实现支付功能

uniapp实现支付功能

支付功能实现概述 在UniApp中实现支付功能通常需要对接第三方支付平台(如微信支付、支付宝支付等)。以下是基于微信支付和支付宝支付的通用实现流程。 微信支付实现步骤 1. 配置支付权限 在微信开…

uniapp部署到服务器

uniapp部署到服务器

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

uniapp多环境配置

uniapp多环境配置

多环境配置的必要性 在UniApp开发中,多环境配置能有效区分开发、测试、生产等不同环境的API地址、密钥等参数,避免手动修改代码导致的错误。 创建环境配置文件 在项目根目录下创建env.js或c…

uniapp安装uview

uniapp安装uview

安装uView到UniApp项目 方法一:通过npm安装(推荐) 确保项目已初始化npm,在项目根目录执行以下命令: npm install uview-ui 在main.js文件中引入并注册uV…