更新记录

1.0.6(2026-09-20)

更新 插件信息

1.0.5(2026-05-27)

更新插件信息

1.0.4(2026-05-25)

更新插件信息

查看更多

平台兼容性

uni-app(4.76)

Vue2 Vue2插件版本 Vue3 Vue3插件版本 Chrome Safari app-vue app-vue插件版本 app-nvue app-nvue插件版本 Android Android插件版本 iOS iOS插件版本 鸿蒙
√ 1.0.0 √ 1.0.0 × × √ 1.0.0 √ 1.0.0 7.0 1.0.0 13 1.0.0 ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(4.76)

Chrome Safari Android Android插件版本 iOS iOS插件版本 鸿蒙 微信小程序
× × 7.0 1.0.0 13 1.0.0 × ×

tt-line-sdk

LINE 授权登录插件,为 uni-app x & uni-app 提供 LINE Login 集成方案,支持 iOS 和 Android 双平台

目录

SDK版本信息

平台 SDK 版本 支持状态
iOS LineSDKSwift 5.15.0 支持
Android LINE SDK 5.11.1 支持

推荐阅读: LINE Login 官方文档

重要提示

  • 必须使用自定义基座运行,否则无法找到插件方法
  • 测试前需确保已在 LINE Developers Console 创建 Channel 并获取 Channel ID
  • Android 自定义基座必须使用自签名,勿使用云端签名

环境配置

前置条件

  1. 在 LINE Developers Console 创建一个 Provider 和 LINE Login Channel
  2. 获取 Channel ID
  3. 在 Channel 设置中配置应用的 Bundle ID(iOS)和 Package Name(Android)

iOS 平台配置

1. 配置 URL Scheme 和 Query Schemes

编辑插件内的 uni_modules/tt-line-sdk/utssdk/app-ios/Info.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
        <key>CFBundleURLSchemes</key>
        <array>
          <string>line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)</string>
        </array>
      </dict>
    </array>
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>lineauth2</string>
      <string>line</string>
    </array>
  </dict>
</plist>

2. 配置通用链接 (Universal Link)(可选)

如果需要使用 Universal Link 方式回调,请参考:

Android 平台配置

Android 平台会自动完成相关配置,确保在 LINE Developers Console 正确配置应用 Package Name 即可。

快速开始

1. 导入插件

uni-app x 版本

import { getTTLineSDK } from "@/uni_modules/tt-line-sdk";
import type { TTLineSDK, TTLineRegisterOptions, TTLineLoginOptions, TTLineLogoutOptions } from "@/uni_modules/tt-line-sdk";

const lineSDK = getTTLineSDK();

uni-app 版本

import { getTTLineSDK } from "@/uni_modules/tt-line-sdk";

const lineSDK = getTTLineSDK();

2. 初始化 SDK

在使用任何功能前,必须先调用 register 方法初始化 SDK。

uni-app x 版本

lineSDK.register({
    channelId: "您的 LINE Channel ID",     // 必填:LINE Developers Console 中获取
    universalLink: "您的通用链接",          // iOS 可选:Universal Link
    success: (res) => {
        console.log("LINE SDK 初始化成功");
    },
    fail: (err) => {
        console.error("LINE SDK 初始化失败:", err.errMsg);
    },
    complete: null
} as TTLineRegisterOptions);

uni-app 版本

lineSDK.register({
    channelId: "您的 LINE Channel ID",
    universalLink: null,
    success: (res) => {
        console.log("LINE SDK 初始化成功");
    },
    fail: (err) => {
        console.error("LINE SDK 初始化失败:", err.errMsg);
    },
    complete: null
});

功能介绍

LINE 授权登录

LINE 登录完成后会直接返回 Access Token 和用户信息,无需像微信一样再通过后端换取

参数说明

TTLineLoginOptions

参数 类型 必填 说明
permissions string[] 否 请求的权限列表,可选值见下表,默认 ["profile"]
success function 否 成功回调
fail function 否 失败回调
complete function 否 完成回调

权限列表 (permissions)

值 说明
"profile" 获取用户基本信息(默认)
"openid" 获取 ID Token(JWT),可用于服务端验证

返回值 TTLineLoginSuccess

参数 类型 说明
accessToken string LINE Access Token,可用于调用 LINE API
idToken string | null ID Token(JWT),需请求 openid 权限
userID string | null 用户 ID
name string | null 用户名称
pictureURL string | null 用户头像 URL
statusMessage string | null 用户状态消息

示例代码

uni-app x 版本

lineSDK.login({
    permissions: ["profile", "openid"],
    success: (res) => {
        console.log("LINE 登录成功");
        console.log("userID:", res.userID);
        console.log("name:", res.name);
        console.log("pictureURL:", res.pictureURL);
        console.log("accessToken:", res.accessToken);
        console.log("idToken:", res.idToken);

        // 将 accessToken 或 idToken 发送到后端服务器进行验证
        this.sendTokenToServer(res.accessToken, res.idToken);
    },
    fail: (err) => {
        console.error("LINE 登录失败:", err.errMsg);
        uni.showToast({
            title: '登录失败',
            icon: 'error'
        });
    },
    complete: null
} as TTLineLoginOptions);

uni-app 版本

lineSDK.login({
    permissions: ["profile", "openid"],
    success: (res) => {
        console.log("LINE 登录成功");
        console.log("userID:", res.userID);
        console.log("name:", res.name);
        console.log("accessToken:", res.accessToken);

        this.sendTokenToServer(res.accessToken, res.idToken);
    },
    fail: (err) => {
        console.error("LINE 登录失败:", err.errMsg);
        uni.showToast({
            title: '登录失败',
            icon: 'error'
        });
    },
    complete: null
});

后端验证

LINE 登录直接返回 Access Token,后端可使用该 Token 调用 LINE API 验证用户身份:

  1. 使用 Access Token 调用 GET https://api.line.me/v2/profile 获取用户信息
  2. 或使用 ID Token 在服务端进行 JWT 验证

详细流程请参考: LINE Login API 文档

退出登录

参数说明

TTLineLogoutOptions

参数 类型 必填 说明
success function 否 成功回调
fail function 否 失败回调
complete function 否 完成回调

示例代码

uni-app x 版本

lineSDK.logout({
    success: (res) => {
        console.log("退出登录成功");
        uni.showToast({ title: '已退出登录' });
    },
    fail: (err) => {
        console.error("退出登录失败:", err.errMsg);
    },
    complete: null
} as TTLineLogoutOptions);

uni-app 版本

lineSDK.logout({
    success: (res) => {
        console.log("退出登录成功");
        uni.showToast({ title: '已退出登录' });
    },
    fail: (err) => {
        console.error("退出登录失败:", err.errMsg);
    },
    complete: null
});

错误处理

错误码说明

错误码 错误信息 适用场景 解决方案
101 系统环境错误,请检查应用状态 所有功能 Android: 检查 Activity 状态; iOS: 检查视图控制器
102 LINE 应用未安装或不可用 所有功能 提示用户安装 LINE 客户端
103 SDK 未初始化,请先调用 register 登录/退出 确保先调用 register 方法
106 用户取消登录 登录 用户主动取消,可忽略或提示
108 登录结果为空 登录 重试登录操作
202 用户未登录 退出登录 用户尚未登录,无需退出
999 其他未知错误 所有功能 查看原始错误信息排查

常见问题

1. 找不到插件方法?

解决方案: 确保使用自定义基座运行,标准基座不包含原生插件。

2. iOS 平台登录无响应?

解决方案:

  • 检查 uni_modules/tt-line-sdk/utssdk/app-ios/Info.plist 中的 URL Scheme 和 LSApplicationQueriesSchemes 配置
  • 确认 LINE Developers Console 中已正确配置 iOS Bundle ID
  • 如使用 Universal Link,确认配置正确

3. Android 平台登录失败?

解决方案:

  • 确认 LINE Developers Console 中已正确配置 Android Package Name
  • 确保应用签名正确
  • 检查设备上是否已安装 LINE 客户端

4. 登录返回用户取消(错误码 106)?

解决方案:

  • 这是用户主动取消登录操作的正常行为
  • 根据业务需求忽略或提示用户重试

5. ID Token 为空?

解决方案:

  • 确保 permissions 中包含 "openid"
  • ID Token 以 JWT 格式返回,可在后端解析验证

完整示例

import { getTTLineSDK } from "@/uni_modules/tt-line-sdk";

const lineSDK = getTTLineSDK();

// 1. 初始化
lineSDK.register({
    channelId: "YOUR_CHANNEL_ID",
    universalLink: null,
    success: (res) => {
        console.log("初始化成功");
    },
    fail: (err) => {
        console.error("初始化失败:", err.errMsg);
    },
    complete: null
});

// 2. 登录
lineSDK.login({
    permissions: ["profile", "openid"],
    success: (res) => {
        console.log("登录成功");
        console.log("userID:", res.userID);
        console.log("name:", res.name);
        console.log("accessToken:", res.accessToken);
    },
    fail: (err) => {
        console.error("登录失败:", err.errMsg);
    },
    complete: null
});

// 3. 退出登录
lineSDK.logout({
    success: (res) => {
        console.log("退出成功");
    },
    fail: (err) => {
        console.error("退出失败:", err.errMsg);
    },
    complete: null
});

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

无

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无