更新记录
1.0.0(2026-03-30)
支持 授权登录功能
平台兼容性
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 自定义基座必须使用自签名,勿使用云端签名
环境配置
前置条件
- 在 LINE Developers Console 创建一个 Provider 和 LINE Login Channel
- 获取
Channel ID - 在 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),可用于服务端验证 |
"email" |
获取用户邮箱(需在 LINE Console 开通 email 权限) |
返回值 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 |
| string | null | 用户邮箱,需请求 email 权限 |
|
| 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 验证用户身份:
- 使用 Access Token 调用
GET https://api.line.me/v2/profile获取用户信息 - 或使用 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. 获取不到邮箱?
解决方案:
- 确保
permissions中包含"email"和"openid" - 在 LINE Developers Console 的 Channel 设置中开通 email 权限
- 用户的 LINE 账号需要已绑定邮箱
6. 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
});

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(1)
下载 607
赞赏 3
下载 11440263
赞赏 1898
赞赏
京公网安备:11010802035340号