@atpassport/client 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +10 -3
  2. package/README_ja.md +0 -73
package/package.json CHANGED
@@ -1,12 +1,19 @@
1
1
  {
2
2
  "name": "@atpassport/client",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
+ "description": "AtPassport client library for integrating secure handle input assist into applications.",
5
+ "keywords": [
6
+ "atproto",
7
+ "bluesky",
8
+ "handle-manager"
9
+ ],
10
+ "author": "usounds.work",
11
+ "license": "MIT",
4
12
  "main": "dist/index.js",
5
13
  "types": "dist/index.d.ts",
6
14
  "files": [
7
15
  "dist",
8
- "README.md",
9
- "README_ja.md"
16
+ "README.md"
10
17
  ],
11
18
  "publishConfig": {
12
19
  "access": "public"
package/README_ja.md DELETED
@@ -1,73 +0,0 @@
1
- # @atpassport/client
2
-
3
- [@passport](https://atpassport.net) は、atproto エコシステム向けの認証プロバイダーです。
4
- このクライアントライブラリを使うことで、あなたのアプリケーション(ブラウザ拡張機能やWebアプリ)に、@passport を利用した「ハンドル入力のアシスト機能」を簡単に組み込むことができます。
5
-
6
- *For the English documentation, please see [README.md](./README.md).*
7
-
8
- ## 特徴
9
- - 依存関係ゼロ(Zero dependencies)
10
- - OAuthライクなセキュアな連携フロー(CSRF対策のための `atpstate` 対応)
11
- - 複数のカスタムパラメータの引き回し(コールバックに付与したパラメータが自動で返却されます)
12
-
13
- ## インストール
14
-
15
- ```bash
16
- npm install @atpassport/client
17
- # or
18
- pnpm add @atpassport/client
19
- ```
20
-
21
- ## 使い方
22
-
23
- ```typescript
24
- import { AtPassport } from '@atpassport/client';
25
-
26
- // 1. クライアントの初期化
27
- const passport = new AtPassport({
28
- callbackUrl: 'https://myapp.com/oauth/login' // 必須: 認証後に戻ってくるURL
29
- });
30
-
31
- // 2. (任意)認証URLの生成とリダイレクト
32
- // カスタムパラメータ(例: ログイン後に元いたページに戻すための redirect_uri など)を指定できます
33
- const { url, atpstate } = passport.generateAuthUrl({
34
- redirect_uri: '/dashboard'
35
- });
36
-
37
- // 3.(任意)セキュリティのため、発行された atpstate をセッションや sessionStorage 等に保存します
38
- sessionStorage.setItem('atpstate', atpstate);
39
-
40
- // 4. @passport のハンドル選択画面へリダイレクト
41
- window.location.assign(url);
42
- ```
43
-
44
- ```typescript
45
- // コールバック先 (https://myapp.com/oauth/callback) でのパラメータ受け取り
46
- // (任意)保存していた atpstate を第2引数に渡すことで、状態が不一致(CSRFの疑い)の場合はエラー(例外)が発生します
47
- const savedState = sessionStorage.getItem('atpstate');
48
- const result = passport.parseCallback(window.location.href, savedState);
49
-
50
- console.log('ログイン成功:', result);
51
- console.log('認証ユーザー:', result.handle);
52
- console.log('カスタムパラメータ:', result.customParams['redirect_uri']); // '/dashboard' が取れる
53
- ```
54
-
55
- ---
56
-
57
- ## パラメータ・プレースホルダーの解説
58
-
59
- @passport からコールバック URL にリダイレクトされる際、以下の情報が URL パラメータとして付与されます。
60
-
61
- ### 基本パラメータ(`parseCallback` で自動取得されるもの)
62
- - **`handle`**: 認証されたユーザーの Bluesky / atproto ハンドル名(例: `alice.bsky.social`)
63
- - **`did`**: ユーザーの分散型識別子(DID)。(例: `did:plc:xxxxxxxx`。ハンドルの解決やPDSとの通信に利用します)
64
- - **`pdsurl`**: ユーザーのデータが保存されている PDS (Personal Data Server) のエンドポイント URL。
65
- - **`atpstate`**: `generateAuthUrl()` で自動生成された CSRF 防止用のステート文字列。リクエスト元の検証に用います。
66
-
67
- ### `{handle}` などのプレースホルダー置換機能
68
- 特定のエンドポイントを利用した連携や、組み込み先のクライアント実装次第では、`callbackUrl` 内に `{handle}` や `{did}` といった文字列(プレースホルダー)を含めておくことで、認証完了時に @passport 側でユーザーの実際のハンドルや DID に**動的に文字列置換**されてリダイレクトされる機能があります。
69
-
70
- **例:**
71
- `callbackUrl` を `https://myapp.com/login?handle={handle}` にして @passport へ送ると、完了時に `https://myapp.com/login?handle=alice.bsky.social` として戻ってきます。
72
-
73
- ※ `@atpassport/client` を使った標準の `generateAuthUrl` → `parseCallback` フローでは、@passport はプレースホルダー置換ではなく、安全に `&handle=...` のように標準的なクエリパラメータとして追記する形を採っているため、意識せずに `parseCallback()` だけで全ての情報を簡単に安全に受け取ることができます。