有一个站点,您可以在其中向其他用户发送消息。当发送消息的用户离线时,他们会收到邮件通知。
如何使当单击指向聊天的邮箱中的链接时,用户会自动登录到该站点?
现在我在邮箱中的链接导致聊天,但是当我单击时,该站点的登录窗口被敲掉了。
为了授权用户,有 Devise gem。
有一个站点,您可以在其中向其他用户发送消息。当发送消息的用户离线时,他们会收到邮件通知。
如何使当单击指向聊天的邮箱中的链接时,用户会自动登录到该站点?
现在我在邮箱中的链接导致聊天,但是当我单击时,该站点的登录窗口被敲掉了。
为了授权用户,有 Devise gem。
为此,您需要用户提供的附加令牌,您将通过该令牌搜索用户。
在数据库中创建一个新的字符串字段,例如
notification_token. 在发送一封信之前,生成它,保存加密版本,发送原始版本(Devise 有一个单独的方法)。此外,您在信中创建了一个链接到一些单独的控制器操作,因为您需要跳过before_action :authenticate_user!.用户成功登录聊天后,出于安全目的重置其令牌。以下是最简单选项的示例,它的问题是只有最近一封信的链接才有效。如果您需要所有链接都可以工作 - 将令牌放入单独的模型中,并使其与用户一对多。
找到了一种更容易的方法。
创建了一个帮助器,通过添加用户的哈希来转换路径。
链接看起来像这样(haml):