line-login — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited line-login (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Do not answer LINE Login questions from memory — LINE updates APIs frequently and training data is unreliable. Always consult the references below.
LINE Login v2.1 is built on OAuth 2.0 and OpenID Connect. It provides user authentication, profile access, and bot linking for web apps, native apps (iOS/Android), Unity, and Flutter.
LINE_LOGIN_CHANNEL_ID=LINE Login Channel ID
LINE_LOGIN_CHANNEL_SECRET=Channel secret (ID token verification, token exchange)
LINE_LOGIN_REDIRECT_URI=Registered callback URLRead [references/api-common.md](references/api-common.md) before writing any LINE Login code. Contains rules that affect all API interactions: forward compatibility (don't use strict schemas — LINE adds fields without notice), rate limits, client_secret conditional requirement by App types, error responses, and logging recommendations.
User → authorize endpoint → LINE Login screen → callback with code → token exchange → access_token + id_token# 1. Redirect user to authorize
state = random_token()
session.save(state)
redirect to:
https://access.line.me/oauth2/v2.1/authorize?
response_type=code
&client_id={channel_id}
&redirect_uri={callback_url}
&state={state}
&scope=profile%20openid%20email
# 2. Callback — exchange code for token
if params.state != session.state:
return 403 # CSRF check failed
POST https://api.line.me/oauth2/v2.1/token
grant_type=authorization_code
&code={params.code}
&redirect_uri={callback_url}
&client_id={channel_id}
&client_secret={channel_secret}
# 3. Response
{ access_token, token_type, refresh_token, expires_in, id_token, scope }| Step | Endpoint |
|---|---|
| Authorize | GET https://access.line.me/oauth2/v2.1/authorize |
| Token Exchange | POST https://api.line.me/oauth2/v2.1/token |
profile, openid, email (space-separated)S256 supportedFull authorize parameters, PKCE, scope combinations, error codes → [references/oauth-flow.md](references/oauth-flow.md)
| Operation | Endpoint |
|---|---|
| Verify Access Token | GET https://api.line.me/oauth2/v2.1/verify?access_token={token} |
| Refresh Token | POST https://api.line.me/oauth2/v2.1/token (grant_type=refresh_token) |
| Revoke Token | POST https://api.line.me/oauth2/v2.1/revoke |
| Verify ID Token | POST https://api.line.me/oauth2/v2.1/verify (id_token + client_id) |
| Token | Validity |
|---|---|
| Access Token | 30 days |
| Refresh Token | 90 days |
ID Token signing: HS256 (web login) / ES256 (native app, SDK, LIFF)
Full token APIs, ID Token claims, signing verification → [references/token-management.md](references/token-management.md)
| Operation | Endpoint |
|---|---|
| Get User Profile | GET https://api.line.me/v2/profile |
| Check Friendship | GET https://api.line.me/friendship/v1/status |
| Deauthorize | POST https://api.line.me/user/v1/deauthorize |
bot_prompt parameter: normal (on consent screen) / aggressive (separate screen after consent)friendship_status_changed: included in token response when bot linking is configuredFull user profile, bot linking logic → [references/user-profile.md](references/user-profile.md)
Full security checklist, development guidelines, auto login failure handling → [references/security.md](references/security.md)
| File | Topic |
|---|---|
| references/api-common.md | Read first. Rate limits, status codes, forward compatibility, client_secret rules, logging |
| references/oauth-flow.md | Authorization flow, PKCE, scopes, auth methods, error codes |
| references/token-management.md | Token exchange/refresh/revoke/verify, ID Token claims and signing |
| references/security.md | Security checklist, development guidelines, auto login failure, login button design |
| references/user-profile.md | User profile API, Link a Bot, friendship status |
| references/experts.md | LINE Login domain experts for architecture guidance |
Native SDKs: iOS (Swift) | Android | Unity | Flutter
For web apps, use the OAuth 2.1 flow directly (no SDK required).
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.