tagru login
ブラウザで TAGRU にログインし、CLI 用のトークンを保存します。
text
tagru login [--target <prod|test|localhost>] [--write] [--no-browser]オプション
| オプション | 内容 |
|---|---|
-t, --target <name> | ログインする接続先。指定した接続先を既定の接続先として保存します |
--write | 同意画面で、書き込みに最初からチェックを入れた状態にする(許可するかは同意画面で選びます) |
--no-browser | ブラウザを自動で開かず、URL を表示するだけにする |
使い方
bash
tagru login # 既定の接続先(通常は prod)にログインする(書き込みは最初はオフ)
tagru login --write # 書き込みも許可するつもりでログインする
tagru login --no-browser # URL を表示し、手動でブラウザに貼り付ける
tagru login --target localhost # 手元のサーバーにログインする流れ
127.0.0.1の空きポートで待ち受け、ブラウザで TAGRU の同意画面を開きます(OAuth 2.0 認可コード + PKCE)- 同意画面で許可する内容(読み取りは必須、書き込みは任意)を選んで許可すると、ターミナルに戻ってトークンを保存します
- 以前のログインのトークンがあれば、サーバー側で失効させます
text
$ tagru login
ブラウザでログイン画面を開きました。開かない場合は次の URL を開いてください:
https://api.example.com/api/v1/cli/oauth/authorize?response_type=code&...
ブラウザでの許可を待っています…(中止: Ctrl+C)
ログインしました: user@example.com(接続先: prod、スコープ: cli:read)
読み取りだけのログインです。書き込み(ワークスペースの作成・ヒアリング・下書きの作成)を使うときは `tagru login --write` でログインし直し、同意画面で許可してください。
トークンの保存先: OS のキーチェーン- 同意画面での許可は、
tagru loginを実行したのと同じマシンのブラウザで行ってください - ブラウザが開かない環境では、表示された URL を手動で開いてください
- 案内(URL・待機中の表示・読み取りだけのときの案内・トークンの保存先)は標準エラー出力、
ログインしました: …は標準出力に出します スコープ:には、同意画面で実際に許可されたもの(cli:read/cli:read cli:write)を出します
権限(スコープ)
tagru login は、読み取り(cli:read)と書き込み(cli:write)の許可を求めます。 同意画面には、それぞれのチェックボックスが出ます。
| 権限 | 同意画面 | 使うところ |
|---|---|---|
読み取り(cli:read) | 必須(チェック済みで外せません) | 一覧・詳細の表示など、書き込み以外のすべて |
書き込み(cli:write) | 任意。最初はオフで、--write を付けたときだけ最初からオン | ワークスペースの作成(tagru workspaces create)、ヒアリング(tagru interview の開始・回答・確定)、下書きの作成(tagru drafts create) |
トークンに付くのは、同意画面で選んだものだけです。--write を付けても、同意画面で書き込みを外せば読み取りだけになります。 許可された権限は、ログインしたときの表示と tagru whoami の「スコープ」で確かめられます。
読み取りだけのログインで書き込みのコマンドを使うと、 エラー(403): この操作には書き込みの権限がありません。… で失敗します。tagru login --write でログインし直し、同意画面で書き込みを許可してください。 すでにログインしている場合、そのログインの権限はそのまま使えます(ログインし直す必要はありません)。
書き込みを許可していても、投稿・予約投稿・ワークスペースの削除は CLI からは行えません(CLI からできないこと)。
トークン
- 保存先は OS のキーチェーンです。使えない環境では設定ディレクトリの
credentials.json(権限 600)に保存します(接続先と設定) - アクセストークンの期限が切れたときは、保存済みのリフレッシュトークンで自動的に更新します
- ログイン状態は接続先ごとに別々です