Tag: omn​​iauth

为OAuth创建签名和Nonce(Ruby)

我希望从我的应用程序访问SmugMug的API来获取用户的相册和图像(用户已经通过ruby的OmniAuth进行了身份validation)。 根据SmugMug的OAuth API ,OAuth需要六个参数。 我可以使用OmniAuth获取令牌,时间戳应该很简单(Time.now.to_i对吗?)。 有两件事我不知道如何生成 – oauth_nonce和oauth_signature。 根据oauth docs,我通过时间戳生成nonce,但我究竟会怎么做呢? 它是否需要一定的长度并限于某些字符? 当然还有签名。 如何使用ruby生成HMAC-SHA1 sig? 我知道oauth gem可以做到,但我宁愿自己生成它以与OmniAuth一起使用。 查看代码,我无法破译oauth gem如何生成sig。 感谢您的任何帮助。

递归地将包含非UTF字符的哈希转换为UTF

我有一个流氓gem(omniauth),提供包含ASCII-BIT8字符串的数据哈希,我想将其转换为UTF。 如何将哈希的所有字符串元素强制为UTF,作为某种rails初始化方法? .to_utf8 initilizer session[:omniauth] = omniauth.to_utf8 class Hash def to_utf8 #not really sure what to do here? end end

Twitter ::错误::在PostsController中未经授权#create – 令牌无效或过期

为什么“创建”会给我一个无效/过期的令牌错误? 用户可以很好地登录(因此他们经过正确的身份validation),但是当他们尝试创建post时,我收到此错误。 我正在使用Omniauth gem(v1.1.4)进行身份validation,使用Twitter gem(v4.6.2)发布到Twitter。 如果重要的话,Omniauth-twitter的gem是v.0.0.16。 这是导致我错误的代码 class PostsController < ApplicationController def create Twitter::Client.new.update(@post.content) end end 这是用户模型的一部分(user.rb) def twitter unless @twitter_user provider = self.authentications.find_by_provider(‘twitter’) @twitter_user = Twitter::Client.new(:oauth_token => provider.token, :oauth_token_secret => provider.secret) rescue nil end @twitter_user end 这是我的omniauth初始化程序 Rails.application.config.middleware.use OmniAuth::Builder do configure do |config| config.path_prefix = ‘/auth’ end provider :twitter, “xxxxxxxxxxxxxxxxxxxx”, “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx” end Twitter.configure do […]

OmniAuth Railscast中的DangerousAttributeError教程:create由ActiveRecord定义

我在SO上查看了ActiveRecord :: DangerousAttributeError和其他类似的线程,但它们没有解决同样的问题。 我正在关注omniauth教程: http ://railscasts.com/episodes/235-omniauth-part-1?view = ascicast 我可以通过oauth通过Twitter进行身份validation并返回用户的数据(auth)。 问题是由于此错误消息,我无法在数据库(sqlite3)中创建/保存它。 错误: ActiveRecord::DangerousAttributeError in AuthenticationsController#create create is defined by ActiveRecord Rails.root: /beta/devise-omniauth1 Application Trace | Framework Trace | Full Trace app/controllers/authentications_controller.rb:15:in `create’ Authentications_Controller: def create auth = request.env[“omniauth.auth”] current_user.authentications.create(:provider => auth[‘provider’], :uid => auth[‘uid’]) flash[:notice] = “Authentication successful.” redirect_to authentications_url end 楷模: class Authentication < ActiveRecord::Base […]

是否可以使用OmniAuth获取Gmail oauth或xauth令牌?

我想从GMail获取oauth或xauth令牌以与gmail-oauth一起使用。 我正在考虑使用OmniAuth,但它似乎还不支持GMail,这意味着有了OmniAuth库存是不可能的。 那是对的吗? 我错过了什么吗?

自动加载常量用户时检测到循环依赖性

我已经按照本教程( http://railscasts.com/episodes/236-omniauth-part-2 )使用OmniAuth和Devise创建facebook登录,我收到此错误:在我的路由中自动加载常量用户时检测到循环依赖性。 RB devise_for :users , :controllers => {:registrations => ‘registrations’} registrations_controller.rb Class RegistrationsController < Devise::RegistrationsController def create super session[:omniauth] = nil unless @user.new_record? end private def build_resource(*args) super if session["devise.omniauth"] @user.apply_omniauth(session["devise.omniauth"]) session["devise.omniauth"] = nil end end end 这是来自AuthenticationsController的我的创建方法 def create omniauth = request.env[“omniauth.auth”] authentication = Authentication.find_by_provider_and_uid(omniauth[‘provider’], omniauth[‘uid’]) if authentication flash[:notice] = “Signed in […]