Yesod をモバイル アプリケーションの API バックエンドとして使用しようとしていますが、ベアラー JWT を使用して認証と承認を処理することにしました。maybeAuthId
Yesod.Auth が JWT を問題なく受け入れる (または拒否する) ようにオーバーライドしました。ただし、クライアント セッションに AuthId を保存してクライアントをリダイレクトするというデフォルトの動作ではなく、認証プラグインがクライアントにトークンを返すようにする方法がわかりません。代わりにクライアントにトークンを返すようにデフォルトの認証プラグインフローを変更する方法はありますか?
更新:ドキュメントとソースコードを少し掘り下げて、認証プラグインが現在どのように機能するかについてより良い考えを持っています:認証プラグインは内部的に呼び出しsetCredsRedirect
てセッションを設定し、コールバックを実行しますonLogin
。使用の問題onLogin
は、Creds
その関数内からアクセスできないことです。解決策に関する私の唯一の他のアイデアは、authenticate
関数を編集して JWT で応答することです。