現在、2つのKohana3.2アプリケーションを実行しています。
- Webサーバー
- Rest APIサーバー(Web認証とすべてのデータベースモデルを処理します)
認証にはパスワードgranttype/2-leggedoauth2を使用しています。誰かがWebサーバーでログインを実行すると、WebサーバーでAuth :: instanceが設定された応答に基づいて、API認証要求がAPIサーバーに送信されます。この時点まではすべて正常に機能します。
APIサーバーには自動Crudコントローラーがありますが、これをWebサーバーにログインした後の「admin」アカウントでのみ使用できるようにしたいと思います。WebサーバーからAPIサーバーに認証を渡す方法を見つけようとしてAuth::instance()->logged_in()
います。これにより、Crudコントローラーは、Webサーバーにログインしている場合にのみ使用できます。
これを達成する方法についての創造的なアドバイスはありますか?主な課題は、APIサーバーがouath2とauth(ORMドライバー)を実行しているのに対し、Webサーバーは成功したコンシューマーAPIログインに基づいてカスタムAuthドライバーを実行していることです。
フローは次のとおりです。
- ユーザーがWebサーバーにアクセスする
- ユーザーがログインします
- Webサーバーがoath2認証要求をAPIサーバーに送信します
- APIサーバーアクセスクライアントデータベースはリクエストを検証し、access_tokenを返します
Auth::instance()->logged_in()
access_tokenが存在するかどうかをWebサーバーが設定します- CRUDリンクは管理者の役割に基づいて表示されます
- CRUDリンクはAPIサーバー上のコントローラーです
- [ここでユーザーが認証されたことを検証する必要があります]
- CRUDコントローラーが表示されます(HMVCに含まれているコントローラーではなく、クロスURLリンク)
どんな助けでも大歓迎です。