私は角度/レールアプリケーションでAuth0を使用する方法を理解しようとしています。角度2 +レール+ Auth0
私はAngle-onlyアプリケーションでAuth0をセットアップしました。うまくいきました。私はAuth0 docs for Railsを見ることができ、それが理にかなっていると分かります。
フロントエンド認証をRailsに接続する方法はわかりませんが、どこからでもドキュメントを見つけることはできません。
私は角度/レールアプリケーションでAuth0を使用する方法を理解しようとしています。角度2 +レール+ Auth0
私はAngle-onlyアプリケーションでAuth0をセットアップしました。うまくいきました。私はAuth0 docs for Railsを見ることができ、それが理にかなっていると分かります。
フロントエンド認証をRailsに接続する方法はわかりませんが、どこからでもドキュメントを見つけることはできません。
さて、私はそれを理解しました。
ベアラeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2JlbmZyYW5rbGlubGFicy5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8NTgzMDZmOTFjMDg4MTRlMDEwMTVmNDM0IiwiYXVkIjoiajNKdHpjYnNpTUkyR0JkRnZGb3FFTjM4cUtTVmI2Q0UiLCJleHAiOjE0Nzk4OTc3OTYsImlhdCI6MTQ3OTg2MTc5Nn0:私は角側での認証にAuth0を使用して、私のRailsサーバにHTTPリクエストを行った場合、そのHTTPリクエストは、このような値を持つ
Authorization
ヘッダーを持つことになります。"ベアラ" 後2cGLY_e7jY0WL-ue4NeT39W4pdxJVSeOT5ZGd_xNmJk
一部、 "eyJ0" で始まる部分は、JSON Web Tokenあります。以後JSON Webトークンを単に「トークン」と呼ぶことにします。
RailsはHTTPリクエストを受け取ると、トークンを取得してデコードすることができます。私の場合、私はKnockを使用しています。
ノックは私のUser
モデルがfrom_token_payload
メソッドを定義することを期待しています。私user
表がauth0_id_string
列を持っている
class User < ApplicationRecord
def self.from_token_payload(payload)
User.find_by(auth0_id_string: payload['sub'])
end
end
:ここでは次のように地雷が見えるものです。 auth0_id_string
が復号化されたAuth0トークンの中でsub
の下にあるものと一致するユーザーを手動で作成すると、私のfrom_token_payload
メソッドがそのユーザーを見つけ出し、Knockがそのトークンについて私に親指を与えます。ユーザーが見つからない場合は、サムネイルを押し下げます。
だから、このように書き、ざっと:
いくつかの欠落がありますが、それがその要点です。私はおそらくAngular + Rails + Auth0認証に関するチュートリアルを書くことになるでしょう。
あなたが提供した情報に基づいて、フロントエンドをAngularで実装し、RailsベースのAPIを使用してAngularフロントエンドに必要なサービスを提供するアプリケーションが必要であると仮定しています。このシナリオでは
あなたは物事のAuth0側からのシングル(クライアント)アプリケーションとしてこれをモデル化し、次のいずれか行うことができます。
最初のオプションは実装が最も簡単ですが、すべてのリクエストにIDトークンを含める必要があります。 2つめは複雑さを増しますが、柔軟性を高めることができます。
これですべての問題が解決されない場合は、達成しようとしている正確なシナリオに関する詳細を質問に反映させてください。
最後の注意、あなたの意図は、後にアプリケーションの異なる範囲で使用できるAPIを提供している場合は、それを確保するための最も正しい方法はどこのトークントークンベースのシステムを使用することによりだろうOAuth2に準拠した認証サーバーによって発行されます。
独自のOAuth2認証サーバーを維持するのは非常に複雑ですので、Auth0はこれをUS地域のアカウントのプレビューモードで既に使用できる追加のサービスとして有効にしています。これは、基本的に、認証プロセスの一部として、現在認証されているユーザを知るためにクライアントアプリケーションによって使用されるIDトークンと、指定されたAPIを呼び出すことを可能にするアクセストークンとを得ることを可能にする。
こんにちはジェイソン、私も同じではなく、運を探していた。だから私は周りを歩いた。そして、それをレールにapiを作成することで解決し、facebook、Google認証をフロントエンドで別々に使用しました(ドキュメントに記載されています)。 –
注:質問を投稿してから[このトピックについてのブログ記事](https://www.angularonrails.com/auth0-angular-2-rails-5-authentication/)を書きました。 –