gpt4 book ai didi

ruby-on-rails - Twitter Oauth 策略与 Warden + 为 Ruby 设计身份验证 Gems

转载 作者:行者123 更新时间:2023-12-05 00:06:46 26 4
gpt4 key购买 nike

设计,基于 Warden(另一个身份验证 gem)的 Ruby 身份验证 gem 不支持 Twitter Oauth 作为身份验证策略,但 Warden 支持。有一种方法可以在 Devise 中使用 Warden Twitter Oauth 策略,但我无法弄清楚。我在设计配置文件中使用以下块:

  config.warden do |manager|
manager.oauth(:twitter) do |twitter|
twitter.consumer_secret = <SECRET>
twitter.consumer_key = <KEY>
twitter.options :site => 'http://twitter.com'
end
manager.default_strategies.unshift :twitter_oauth
end

但我不断收到各种错误消息。有谁知道如何使这项工作?我假设这里还有更多工作要做(配置一个新的链接/路由来与 Warden 交谈,也许向 Devise User 模型添加属性等),但我无法弄清楚它们是什么。请帮忙。

最佳答案

# Needed gems. Add to your Gemfile if you are using Rails3.  
gem 'devise'
gem 'warden_oauth'

#models/user.rb
devise :token_authenticatable, :oauthable # <-- Must have these

#/config/initializers/devise.rb
require 'warden_oauth'
config.warden do |manager|
manager.oauth(:twitter) do |twitter|
twitter.consumer_secret = '<SECRET>'
twitter.consumer_key = '<CONSUMER KEY>'
twitter.options :site => 'http://twitter.com'
end
manager.default_strategies(:scope => :user).unshift :twitter_oauth
end

Warden::OAuth.access_token_user_finder(:twitter) do |access_token|
User.find_or_create_by(:token => access_token.token, :secret => access_token.secret).tap do |user|
#...
end
end

# Link to "Login With Twitter" somewhere in your view
<%= link_to( "Login With Twitter", user_session_path(:warden_oauth_provider => 'twitter') ) %>

关于ruby-on-rails - Twitter Oauth 策略与 Warden + 为 Ruby 设计身份验证 Gems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2868609/

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