我正在做的一个项目的实现被卡住了,使用rails7和device,所有的用户都可以登录,所以我有authenticate_user!
和current_user
方法,同样,它们工作得很好。
我已经介绍了一个Customer
模型。现在,我不希望客户注册密码等,我希望他们点击一个链接,从我的应用程序发送给他们,然后访问一个页面:
# Observer
class CustomerObserver < ActiveRecord::Observer
def after_create(customer)
secret_param = customer.to_sgid(expires_in: nil).to_s
url = ENV['HOST'] + "?csig=#{secret_param}"
# Send email with the url...
end
end
一旦客户单击该链接,他们将进入一个特殊页面,并且只能访问此控制器。
我一直在查看GlobalID,但不确定如何在.to_sgid
中使用for: name
,以便限制客户只能访问CustomersController
和show
操作。
在所有的控制器中,我有before_action :authenticate_user!
。第一件事来到我的是overriding that method。感觉不对。如何让客户通过签名链接访问CustomersController
,并仍然受到保护,不受未经授权的用户?
我目前正在探索this method,在那里我可能有潜在的客户模型可认证?这意味着有两个登录,一个为user
,另一个为customer
。如果在/sign_in/
路径中有一个为user
和customer
的登录就好了。我觉得这篇文章正在改变它的方向。
1条答案
按热度按时间sczxawaw1#
像这样的懒检查怎么样;
或