Skip to content

@wenext/feishu-auth

飞书登录 SDK,专为多系统、跨域场景设计,提供安全、易用的身份验证解决方案。

项目概述

@wenext/feishu-auth 是一个轻量级的飞书登录 SDK,旨在简化飞书扫码登录和H5授权流程。它通过提供两种登录模式(弹窗和重定向),解决了跨域身份验证的难题,并内置了强大的错误处理和插件机制,为开发者提供了灵活、可靠的集成体验。

主要功能

  • 零配置跨域认证: 采用弹窗式授权流程和集中的回调处理,无需复杂的后端配置即可实现安全的跨域身份验证。
  • 强大的错误处理: 提供了一套自定义的错误类,使错误处理更加可预测和规范。
  • 可扩展的插件系统: 允许开发者通过插件在身份验证生命周期中添加自定义功能。
  • 轻量化设计: 经过性能优化,打包体积小,对应用性能影响降到最低。
  • TypeScript 支持: 提供完整的 TypeScript 类型定义,提升开发效率和代码质量。

技术栈

  • TypeScript: 主要开发语言,提供强类型支持。
  • Vite: 用于项目构建和开发的工具。
  • Axios: 用于处理网络请求。

安装指南

您可以通过 npm、yarn 或 pnpm 进行安装:

bash
# 使用 npm
npm install @wenext/feishu-auth

# 使用 yarn
yarn add @wenext/feishu-auth

# 使用 pnpm
pnpm add @wenext/feishu-auth

使用说明

初始化

首先,使用您的H5应用配置来初始化 FeishuAuth 类。使用单例模式。

typescript
import { FeishuAuth } from '@wenext/feishu-auth';

// 单例模式
const feishuAuth = FeishuAuth.getInstance({
  application_id: 'YOUR_application_id', // 你的h5应用 Client ID
  redirect_url: 'YOUR_APPLICATION_REDIRECT_URI', // 登录成功后的最终重定向地址
  env: 'test', // 登录环境
});

登录

此方法会打开一个公共登录页面,引导用户授权。它返回一个 Promise,成功后会解析出 accessTokenuserInfo

typescript
feishuAuth.login().then((authInfo) => {
  // 成功获取 authInfo
  console.log('Auth Info:', authInfo.access_token, authInfo.userInfo);
}).catch((err) => {
  // 处理登录过程中可能出现的错误
  console.error('Login failed:', error);
});

登出

成功后会重定向至指定页面,若redirectUrl为空则跳转至公共登录页。

typescript
const feishuAuth = FeishuAuth.getInstance({});
const redirectUrl = 'https://xxx';

// 成功后会重定向至指定页面,若redirect_url为空则跳转至公共登录页
feishuAuth.logout(redirectUrl);

获取access_token

成功后会重定向至指定页面,若redirectUrl为空则跳转至公共登录页。

typescript
import { FeishuAuth } from '@wenext/feishu-auth';

// 单例模式
const feishuAuth = FeishuAuth.getInstance({});

// 该实例方法会自动校验token的过期时间,若过期,则返回undefiend,否则返回token
feishuAuth.getAccessToken();

获取用户信息

成功后会重定向至指定页面,若redirectUrl为空则跳转至公共登录页。

typescript
import { FeishuAuth } from '@wenext/feishu-auth';

// 单例模式
const feishuAuth = FeishuAuth.getInstance({});

feishuAuth.getUserInfo();

配置方法

在初始化 FeishuAuth 时,您可以传入以下配置项:

参数类型是否必需描述
application_idstring您的H5应用 Client ID。
redirect_urlstring登录成功后的最终重定向地址。
envstring环境,可选值为 test, production