API経由でログインメールを生成する

APIからパスワードなしのログインメールをユーザーに送信したいと考えています(ユーザーが自分で「メールでログイン」をクリックした場合に受け取るものと同様のメールです)。しかし、それは不可能のようです。私は「APIリバースエンジニアリング」テクニックを使用してそれを試みましたが、グローバルAPIキーで認証するとホームページが返されるだけで何もトリガーされません(APIキーなしでは、セッションCookieなどを設定する必要があるようです)。

私が達成したいのは、可能な限り少ないステップでサインアッププロセスを完了することです。ユーザーは別のシステムを通じてサインアップするため、Discourseでユーザーを作成し、一時的なログインリンクが含まれたメールを送信して直接ログインできるようにしたいと考えています。これはすべて、すでに十分面倒なプロセスの摩擦を減らすためのものです!

これをAPI経由で機能させるためのトリックはありますか?

この場合、適切なソリューションはDiscourseConnectを使用した不可視ログイン設定です。

試しましたか?

curl -X POST https://meta.discourse.org/u/email-login \
-H "Api-Key: longapikeyhere" \
-H "Api-Username: system" \
--data-raw 'login=email%40gmail.com'

「いいね!」 1

Falcoさん、返信ありがとうございます。具体的にご提案いただいた通りcurlを使用すると、「リダイレクトされています」という応答があり、ホームページにリダイレクトされてしまいます。ログインメールはトリガーされません。使用していたツールでも同様の結果が得られており、リダイレクトをたどってホームページに戻っていました。

サインアップ後の唯一必要なログインがDiscourseであるため、DiscourseConnectは使用したくありません。

また、長年のDiscourseフォーラムのユーザー(そして賞賛者)として、今回初めて反対側(管理者側)に足を踏み入れましたが、API/Webhooksは非常に優れており、非常に扱いやすく強力です。

「いいね!」 2

そのエンドポイントは現在API呼び出しでは利用できません。APIキーを渡すと、ここでリダイレクトされます。

また、:verify_authenticity_token CSRF保護下にあるこのルートは、APIキーなしでは呼び出すことができません。

「いいね!」 2

ありがとうございます。よくわかりましたし、そのロジックも理解できました。返信に大変感謝しています。

「いいね!」 1