Я использую несколько IDPS. Один из них - OKTA, а другой - Auth0, но я обнаружил, что мне нужно немного больше информации о пользователе, который находится в user_metadata для auth0. Когда данные возвращаются и возвращаются как «[объектный объект]», я также использую devise.
devise.rb
config.omniauth :saml_okta,
name: :saml_okta,
strategy_class: ::OmniAuth::Strategies::SAML,
idp_cert_fingerprint: ENV['OKTA_CERT'],
idp_sso_target_url: ENV['OKTA_SSO']
config.omniauth :saml_auth0,
name: :saml_auth0,
strategy_class: ::OmniAuth::Strategies::SAML,
idp_cert_fingerprint: ENV['AUTH0_CERT'],
idp_sso_target_url: ENV['AUTH0_SSO'],
attribute_statements: {email: ['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress'],
user_metadata: ['http://schemas.auth0.com/user_metadata/'] }
Но возвращаемые данные выглядят так:
provider: :saml_auth0
uid: foo@gmail.com
info: !ruby/hash:OmniAuth::AuthHash::InfoHash
name: foo@gmail.com
email: foo@gmail.com
first_name:
last_name:
user_metadata: "[object Object]"
Как я могу получить user_metadata?