【发布时间】:2021-05-17 19:25:19
【问题描述】:
所以我有 2 个应用程序应该一起工作。我有 app1,这是一个只有我们的员工才会使用的应用,而 app2 是一个 customer_portal 应用,客户可以在其中登录并支付余额。我正在努力做到这一点,以便在 app1 中我们可以创建一个客户帐户并将其链接到特定客户。此过程将使用 devise_invitable 为 app2 创建一个帐户,并通过电子邮件向所选客户发送一个链接以设置其门户应用程序(仅接受邀请),但由于某种原因,邀请链接不起作用,只是重定向到主页.所以基本上app2不能注册账号,必须通过app1创建账号并通过email发送给客户。
我从某人那里听说只有在 URL 不正确时才应该重定向。但它是通过邀请函数生成的 URL
PortalUser.invite!({:name => params[:name], :email => params[:email]}, current_user)
自动通过电子邮件发送此链接 http://localhost:3000/portal_users/invitation/accept.20?invitation_token=p7UKK8Z8nKn4busWerpx
我还可以选择重新发送邀请电子邮件,以防客户请求但发送相同的电子邮件链接
PortalUser.find(params[:id]).deliver_invitation
我能想到的一件事是,如果 2 个不同的应用程序的加密-解密密钥不同,那么当 app2 尝试解密令牌时,它看起来就像是错误的令牌。如果是这种情况,您知道我将如何更改这些键以匹配吗?或者更确切地说,为 app1 提供 app2 的加密密钥,并告诉 devise 将该加密密钥用于所有邀请或 app2 的帐户。
编辑: 所以我发现我可以在 config/initializers/devise.rb 中分配一个 secret_key,如果两个应用程序使用相同的密钥,它就可以工作。但是,我还有一个问题,这样做是否会带来安全问题?
【问题讨论】:
标签: ruby-on-rails devise devise-invitable