Auth0のチュートリアルにしたがって作成していたところタイトルのエラーが発生
サンプルのリポからcloneしても同じ内容だったので、おそらく設定などの不備があると思い調査
調査したところ以前作成したnestjsの設定と全く異なる部分がなかったので、とりあえずpryを入れて一つずつみて行った結果、envからデータを上手く撮れていないことが判明
def self.jwks_hash
binding.pry
# TODO, ここでエラー発生
jwks_raw = Net::HTTP.get URI("https://#{ENV['AUTH0_DOMAIN']}/.well-known/jwks.json")
jwks_keys = Array(JSON.parse(jwks_raw)['keys'])
Hash[
jwks_keys
.map do |k|
[
k['kid'],
OpenSSL::X509::Certificate.new(
Base64.decode64(k['x5c'].first)
).public_key
]
end
]
end
どうやらこの部分のenvがnilになっていて
jwks_raw = Net::HTTP.get URI("https://#{ENV['AUTH0_DOMAIN']}/.well-known/jwks.json")
、出力すると
ENV['AUTH0_DOMAIN']
=> nil
となっていました。
なのでdotenvの設定を修正
→gemがdotenv-railsではなくdotenvだったので変更したところ
"https://#{ENV['AUTH0_DOMAIN']}/.well-known/jwks.json"
=>
"https://my-domain.auth0.com/.well-known/jwks.json"
このように表示されました。
そして、DOMAINが通ったところで問題なくリクエストが通りましt!!!
参考記事
Auth0 Ruby on Rails TCP Error
Rails5にAuth0を利用して認証機構を最速で追加して、爆速開発環境を構築していくぜ!
Building Secure APIs with Rails 6 and Auth0
Errno::ECONNREFUSED (Failed to open TCP connection to :80 - Authenticated requests fails