[英]How do I use RelayState from SAML to specifiy landing page at the SP, using saml-omniauth and devise?
如何使用 SAML 協議中的 RelayState 在 IdP 發起的 SSO 中指定 SP 處的登錄頁面?
我在 IdP 和 SP 之間設置了 IdP 發起的 SSO 流程。 它可以工作,但它位於 root_path。 我需要它登陸 RelayState URL。
我正在使用設計。 在我的控制器下面找到:
def saml
student = Student.where(email: request.env["omniauth.auth"]['uid'].to_s).first
if student
sign_in_and_redirect student, event: :authentication
else
flash[:error] = t 'flash_msg.access_1'
redirect_to root_path
end
end
答案是sign_in_and_redirect method by sign_in method
替換sign_in_and_redirect method by sign_in method
。 然后通過執行redirect_to params[:RelayState]
將用戶重定向到 RelayState URL。 最終的 saml 方法是:
def saml
student = Student.where(email: request.env["omniauth.auth"]['uid'].to_s).first
if student
sign_in student, event: :authentication
redirect_to params[:RelayState]
else
flash[:error] = t 'flash_msg.access_1'
redirect_to root_path
end
end
我希望它可以幫助某人!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.