【问题标题】:User authentication with yt gem and devise in rails使用 yt gem 进行用户身份验证并在 rails 中设计
【发布时间】:2018-02-14 14:39:33
【问题描述】:

我正在尝试使用此处的指南设置 yt gem:http://www.rubydoc.info/gems/yt/frames#Web_apps_that_require_user_interactions(场景 3),但我有点迷路了。我什至没有一个大致的概念。我对整个“omniauth”这件事很陌生,而且我看过的 YouTube 教程(rails casts 和 stuk.io)并没有太大帮助。如果有人能指出我使用这个 gem 进行用户身份验证的正确方向(也许有设计?),那就太好了!

【问题讨论】:

  • 你已经尝试了什么?你到底在坚持什么?请在帖子中包含您的代码,以及您遇到的任何问题/错误。
  • 就像我说的,我不知道从哪里开始,我已经在文档中添加了代码,但除此之外,我迷路了
  • 你不能只问'我想建立一个时间机器,所以告诉我从哪里开始以及程序是什么。 Google 关于 YT gem、Omniauth、Devise 并开始构建您的应用程序,然后如果您卡在任何地方,请分享您的代码,并提供有关您做了什么、正在尝试什么以及目前卡在哪里的信息。

标签: ruby-on-rails rubygems


【解决方案1】:

Devise 沿 Omniauth 很好,但 yt gem 不会识别 client_idclient_secretOmniauth gem 将与 yt gem 一起使用。

第 1 步

在您的 gem 文件中添加 google-oauth2 gemyt gem

第 2 步

在你的config/initializers/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2, 'Google-Client-id', 'google-secret-key', scope: 'go through scopes in [google-omniauth github page][1]'
end

第 3 步

在需要的地方添加 yt gem 功能。例如,如果您想将视频上传到 youtube,请在 video.rb 中添加以下 sn-p。

def upload!(user)
    account = Yt::Account.new access_token: user.token
    account.upload_video self.file, title: self.title, description: self.description
  end

在你的 videos_controller.rb 中

def create
    @video = Video.create(title: params[:video][:title], description: params[:video][:description], file: params[:video][:file].try(:tempfile).try(:to_path))
    @video.user_id = current_user.id
    if @video.save
      uploaded_video = @video.upload!(current_user)
    end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    相关资源
    最近更新 更多