feishu-user-auth
Original:🇨🇳 Chinese
Translated
14 scripts
Use this skill when users mention scenarios such as "Feishu authorization", "OAuth", "Device Flow", "open_id", "repeated authorization pop-ups", "token reuse", "supplement authorization scopes", or "where Feishu tokens are stored"—scenarios that require reusing existing local user tokens, only supplementing missing scopes, or troubleshooting the actual storage location of tokens.
9installs
Added on
NPX Install
npx skill4agent add shuliuzhenhua-sys/shuliu-skills feishu-user-authTags
Translated version includes tags in frontmatterSKILL.md Content (Chinese)
View Translation Comparison →Feishu User Auth
This skill only handles two things:
- Initiate Feishu user authorization
- Reuse existing tokens as much as possible to avoid repeated authorization pop-ups
When to Use
Use this skill directly when users have the following needs:
- Implement user authorization for Feishu applications
- Troubleshoot why authorization pop-ups keep appearing repeatedly
- Check if a user has already authorized locally
- Want to add new scopes without losing old authorizations
- Want to delete a user's local token and re-authorize
Storage Location
By default, this skill stores tokens in the user directory:
~/.feishu-auth/tokens/<appId>.json
If you explicitly configure in , the path will be changed to:
storeDirconfig.json<storeDir>/tokens/<appId>.json
storeDir~/.feishu-authFor older versions where tokens are stored in the legacy directory, the script will attempt to migrate from these two locations:
<legacyStoreDir>/tokens/<appId>.json<legacyStoreDir>/<appId>__<openId>.json
The script will use this old directory as the default migration source and automatically attempt migration when the new directory is empty.
Pre-configuration
First, find the installed skill directory, then maintain the file within it.
config.jsonCommon installation locations:
- Project-local installation:
./.agents/skills/feishu-user-auth/config.json - Global installation ():
npx skills add ... -g~/.agents/skills/feishu-user-auth/config.json
If you don't want to modify the skill directory, you can prepare your own configuration file and pass it in via later.
--configFormat as follows:
json
{
"appId": "cli_xxx",
"appSecret": "replace-with-app-secret",
"brand": "feishu"
}Notes:
- and
appIdare requiredappSecret - is optional, default is
brandfeishu - is optional; if not specified, the default is
storeDir~/.feishu-auth - If is explicitly filled in, it can be an absolute path or
storeDir~/.feishu-auth - is optional, default points to the skill's own
legacyStoreDirdirectorystate/
This set of scripts no longer depends on environment variables like , , , and in the system.
FEISHU_APP_IDFEISHU_APP_SECRETFEISHU_BRANDFEISHU_AUTH_*Execution Methods
After installation, is not automatically added to the PATH by default.
feishu-authThe most reliable way to call it is to directly execute the bin file in the installation directory:
bash
./.agents/skills/feishu-user-auth/bin/feishu-auth.js authIf installed globally, you can execute it from any directory:
bash
~/.agents/skills/feishu-user-auth/bin/feishu-auth.js authIf you want to use the command name directly, you can create a link yourself:
feishu-authbash
mkdir -p ~/.local/bin
ln -sf ~/.agents/skills/feishu-user-auth/bin/feishu-auth.js ~/.local/bin/feishu-authThen ensure is in your PATH, and you can execute directly:
~/.local/binbash
feishu-auth authAvailable commands:
bash
<skill-dir>/bin/feishu-auth.js auth [--batch-size 60] [--open-id ou_xxx]
<skill-dir>/bin/feishu-auth.js user-auth [--batch-size 60] [--open-id ou_xxx]
<skill-dir>/bin/feishu-auth.js auth --scope "scope1 scope2"
<skill-dir>/bin/feishu-auth.js refresh-token [--open-id ou_xxx]
<skill-dir>/bin/feishu-auth.js refresh-token [--open-id ou_xxx] --force
<skill-dir>/bin/feishu-auth.js show-token
<skill-dir>/bin/feishu-auth.js show-token --open-id ou_xxx
<skill-dir>/bin/feishu-auth.js remove-token --open-id ou_xxx
<skill-dir>/bin/feishu-auth.js system-token
<skill-dir>/bin/feishu-auth.js system-auth
<skill-dir>/bin/feishu-auth.js --config /path/to/config.json auth
<skill-dir>/bin/feishu-auth.js --helpIf you are developing locally in a repository, you can execute the source code entry in the repository root directory:
bash
node skills/feishu-user-auth/scripts/run-auth.js authWorking Rules
Follow this sequence:
- Prioritize reusing saved tokens
- If is not specified, automatically select the most suitable user record to reuse
--open-id - If the application's scopes are more than the locally authorized scopes, only supplement the missing parts
- After batch authorization, save the union of scopes and do not overwrite old batches
Troubleshooting Key Points
If users say "It still pops up even though I've authorized before", check these items first:
- Whether the script of this skill is used, instead of other scripts
- Whether the in
appIdcorresponds to the same app as the old tokenconfig.json - Whether there is indeed a record for the app in the current
storeDir/tokens/ - Whether the scopes required this time exceed the historically authorized scope
- Whether the token has or is in
expiredstatusneeds_refresh
Output Requirements
Inform users of these key pieces of information:
- Which was reused
open_id - Whether re-authorization is actually needed this time
- If needed, which scopes are missing
- The final location of the token in the file
storeDir/tokens/<appId>.json