首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >哪一个更好?用于twitter验证的Omniauth或Omniauth+Devise?

哪一个更好?用于twitter验证的Omniauth或Omniauth+Devise?
EN

Stack Overflow用户
提问于 2013-05-20 14:29:30
回答 1查看 3.4K关注 0票数 3

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

代码语言:javascript
运行
复制
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进行推特验证..下面的代码是

代码语言:javascript
运行
复制
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哪个更好?

EN

回答 1

Stack Overflow用户

发布于 2013-05-20 15:10:24

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

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

如果您不打算使用非常复杂的用户身份验证,而只是想要简单的基于twitter的身份验证,那么您可以继续使用omniauth-twitter。Devise默认情况下会打开您的手动(基于表单)注册申请,这可能不是您想要的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16643783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档