我目前正在使用OmniAuth作为其'CAS策略,这是我的应用中的默认身份验证方法。我想通过OmniAuth身份策略提供另一种使用user_name和password进行身份验证的方法。我在其'文档中已经读过,它意味着要与单独的模型一起使用,而不是现有的模型,但我想知道如果我尝试将它指向现有的当前模型,它是否会破坏。
我想这样做的原因是我的应用程序取决于用户填写填充用户模型的注册表单。目前,CAS策略只是对用户进行身份验证,并在数据库中已存在时对其进行签名,并将其指向用户#new,以便他们填写信息。
如果我要实施OmniAuth身份,我会要求新用户首先使用他们的用户名和密码填写表单以对其进行身份验证,然后将其重定向到用户模型表单。如果我是用户,这会让我烦恼。我知道这只是一次性的事情,但我想尽可能避免它。有什么方法可以将这两个步骤以某种方式结合起来吗?
我知道Devise在当前用户模型中存储密码信息,但它比我需要的更重要,所以我更愿意坚持使用OmniAuth。
很抱歉,如果答案很明显,我对rails很新。
答案 0 :(得分:0)
使用OmniAuth Identity开箱即用,您将所有注册信息收集到Identity模型中,然后使用omniauth将所有信息传递到sessions#create
操作,然后您将构建用户模型从中。
您可以使用OmniAuth身份将注册信息直接存储到用户模型,但是您无法获得使用授权系统的好处。