gpt4 book ai didi

ruby-on-rails - 哪一个更好 ? Omniauth 或 Omniauth+Devise 用于 Twitter 验证?

转载 作者:行者123 更新时间:2023-12-04 03:52:56 26 4
gpt4 key购买 nike

如果我使用 omniauth 进行 Twitter 验证.. 下面的代码是

def create
user = User.from_omniauth(env["omniauth.auth"])
session[:user_id] = user.id
redirect_to root_url, notice: "Successfully signed in"
end

但是如果我使用 omniauth+devise 进行 twitter verificaiton.. 下面的代码是

def twitter
omni= request.env["omniauth.auth"]
authentication = Authentication.find_by_provider_and_uid(omni['provider'],omni['uid'])
if authentication
flash[:notice]="Logged in successfully"
sign_in_and_redirect User.find(authentication.user_id)
elsif current_user
token=omni['credentials'].token
token_secret=omni['credentials'].secret
current_user.authentications.create! (:provider=>omni['provider'],:uid=>omni['uid'],:token=>token,:token_secret=>token_secret)
flash[:notice]="Authentication successful."
sign_in_and_redirect current_user
else
user=User.new
user.apply_omniauth(omni)
if user.save
flash[:notice]="Logged in."
sign_in_and_redirect User.find(user.id)
else
session[:omniauth]=omni.except('extra')
redirect_to new_user_registration_path
end
end
end

Omniauth 和 Omniauth+Devise 哪个更好?

最佳答案

Devise 将为您提供某些现成的辅助函数,如 current_useruser_signed_in? 和 Controller 过滤器,如 before :authenticate_user!

虽然我们自己实现它们是非常基础的,但是当 omniauth-twitter 单独实现时,您将不得不自己实现。

如果您不打算进行非常复杂的用户身份验证,而只想进行简单的基于 twitter 的身份验证,您可以继续并单独使用 omniauth-twitter。默认情况下,Devise 将打开您的应用程序进行手动(基于表格)注册,您可能不希望这样做。

关于ruby-on-rails - 哪一个更好 ? Omniauth 或 Omniauth+Devise 用于 Twitter 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16643783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com