- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在关注此 railscast对于我的具体情况,我在 omniauth 的回调中遇到了法拉第超时错误。
目前我使用 rails 应用程序作为 API 和主干作为 javascript 前端(在同一个应用程序上)
我决定要使用 OAuth 锁定 API,并为 Omniauth 提供自定义策略以作为客户端访问 API 以及作为 Doorkeeper 处理授权逻辑
module OmniAuth
module Strategies
class Twiddle < OmniAuth::Strategies::OAuth2
option :name, :twiddle
option :client_options, {
site: "http://localhost:3001",
authorize_path: "/oauth/authorize"
}
uid do
raw_info["id"]
end
info do
{
firstName: raw_info["firstName"],
lastName: raw_info["lastName"],
email: raw_info["email"]
}
end
def raw_info
@raw_info ||= access_token.get('/api/v1/user').parsed
end
end
end
end
我包括这样的自定义策略:
require File.expand_path('lib/omniauth/strategies/twiddle', Rails.root)
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twiddle, id, secret # Omitting the actual ones for obvious reasons
end
我目前正在我的捆绑包中使用这些 gem
# OAuth
gem 'oauth2'
gem 'omniauth'
gem 'omniauth-oauth2'
gem 'omniauth-facebook'
gem 'doorkeeper'
这是我进行身份验证并尝试检索正确访问 token 的地方(也是我卡住的地方)
def loginParse
if ( user = User.authenticate( params[:email], params[:password] ) )
session[:user_id] = user.id
redirect_to '/auth/twiddle/'
else
render :controller => "authentication", :action => "loginIndex", :notice => "Incorrect credentials"
end
end
这是来自 routes.rb 的路由
# Oauth urls
match '/auth/twiddle/callback', to: "authentication#connectAPI"
match "/auth/facebook/callback", to: "authentication#loginSocialMedia"
应用程序永远无法呈现 connectAPI 操作,此时完全卡住(由服务器日志提供)
User Load (0.4ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
Doorkeeper::Application Load (0.2ms) SELECT `oauth_applications`.* FROM `oauth_applications` WHERE `oauth_applications`.`uid` = '' LIMIT 1
CACHE (0.0ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
Doorkeeper::AccessToken Load (0.3ms) SELECT `oauth_access_tokens`.* FROM `oauth_access_tokens` WHERE `oauth_access_tokens`.`revoked_at` IS NULL AND `oauth_access_tokens`.`application_id` = 1 AND `oauth_access_tokens`.`resource_owner_id` = 1 ORDER BY created_at desc LIMIT 1
(0.1ms) BEGIN
Doorkeeper::AccessGrant Load (0.2ms) SELECT `oauth_access_grants`.* FROM `oauth_access_grants` WHERE `oauth_access_grants`.`token` = '' LIMIT 1
SQL (1.1ms) INSERT INTO `oauth_access_grants` (`application_id`, `created_at`, `expires_in`, `redirect_uri`, `resource_owner_id`, `revoked_at`, `scopes`, `token`) VALUES (1, '2012-08-08 03:10:31', 600, 'http://localhost:3001/auth/twiddle/callback', 1, NULL, '', '')
(1.4ms) COMMIT
Redirected to http://localhost:3001/auth/twiddle/callback?code=a
Completed 302 Found in 12ms (ActiveRecord: 3.7ms)
(twiddle) Callback phase initiated.
日志中省略了许多 uid/重要信息。
最佳答案
我不确定这是否适用于您,这是我的情况:
问题
config/environments/development.rb
:
if ENV["THREADS"]
config.threadsafe!
end
THREADS=1 rails s Puma
测试你的
extra_info
(如 Github 的
/user
)端点在
关于ruby-on-rails - omniauth(自定义策略)/doorkeeper 的法拉第超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11857182/
我正在尝试使用 Faraday 将路由 A(Sinatra 应用程序)中生成的小有效载荷放入路由 B。所以代码基本上是这样的: post "/routeA" do foo.save foo_i
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在尝试为我的 Rails 应用程序的用户设置 OAuth 到 GetPocket ( http://getpocket.com )。 在 Pocket Authentication 文档 ( ht
我想使用 Faraday 发送一个带有 JSON 正文(用于搜索)的获取请求,但我收到了上述错误。我认为 Proc 中的 self 把事情搞砸了,但这与它无关。我正在关注 [faraday githu
我想向 API 发送 POST 请求。这是我的代码: conn = Faraday.new(url: BASE) do |faraday| faraday.response :logger f
作为我正在尝试编写的 Recipe (新手)的一部分,我使用 berks 安装来自其他 Recipe 的依赖项,最终当我运行时 berks install ,我遇到证书验证错误。任何人都可以帮助我知道
我将一个旧脚本迁移到一个新的 CentOS box 并在运行脚本时收到以下消息: Faraday: you may want to install system_timer for reliable
我正在尝试将一些代码从 HTTPParty 转换为 Faraday。以前我用的是: HTTParty.post("http://localhost/widgets.json", body: { nam
我是一名优秀的程序员,十分优秀!