1

我目前正在将 OmniAuth 用于其 CAS 策略,这是我的应用程序中的默认身份验证方法。我想通过 OmniAuth Identity 策略提供一种使用用户名和密码进行身份验证的附加方法。我在它的文档中读到它打算与单独的模型一起使用,而不是与现有模型一起使用,但我想知道如果我尝试将它指向现有的当前模型,它是否会损坏。

我想这样做的原因是我的应用程序依赖于用户填写填充用户模型的注册表单。目前,CAS 策略只是对用户进行身份验证,如果他们已经存在于数据库中,则让他们登录,并将他们指向 users#new,在那里他们填写他们的信息。

如果我要实现 OmniAuth Identity,我会要求新用户首先用他们的用户名和密码填写一个表单来验证他们,然后将他们重定向到 User 模型表单。如果我是用户,这会惹恼我。我知道这只是一次性的事情,但如果可能的话,我想避免它。有没有以某种方式结合这两个步骤的好方法?

我知道 Devise 将密码信息存储在当前的用户模型中,但它的功能比我需要的要重,所以我更愿意坚持使用 OmniAuth。

抱歉,如果答案很明显,我对 Rails 还是很陌生。

4

1 回答 1

0

使用开箱即用的 OmniAuth Identity,您可以将所有注册信息收集到 Identity 模型中,然后使用 omniauth 将所有这些信息传递给您的sessions#create操作,然后您可以从中构建用户模型。

您可以使用 OmniAuth 身份将注册信息直接存储到 User 模型中,但是您没有获得使用授权系统的好处。

于 2012-11-02T20:45:48.643 回答