【问题标题】:Auth0 with Rails API using KnockAuth0 与 Rails API 使用敲门
【发布时间】:2018-04-08 14:48:12
【问题描述】:

使用this 教程,我已经能够使用knock 设置我的Rails API,但是当我提供JWT 时,身份验证似乎不起作用。

这是我的 Knock.rb

Knock.setup do |config|

  config.token_audience = -> { Rails.application.secrets.auth0_client_id }
  config.token_secret_signature_key = -> { Rails.application.secrets.auth0_client_secret }

end

用户.rb:

class User < ApplicationRecord
  has_secure_password

  def self.from_token_payload payload
    payload['sub']
  end
end

projects_controller.rb:

class ProjectsController < ApplicationController
  before_action :set_project, only: [:show, :update, :destroy]
  before_action :authenticate_user

  # GET /projects
  def index
      @projects = Project.all

      json_response(@projects)
  end

...

end

我通过对https://my-auth0-site.auth0.com/oauth/token 的 POST 请求获得了 JWT

在邮递员中:

【问题讨论】:

    标签: ruby-on-rails ruby jwt auth0 rails-api


    【解决方案1】:

    您必须将 Bearer 添加到令牌。看下图

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,但无法使其正常工作。最后我改成Auth0官方文档推荐的方法。它真的很简单,而且效果很好。

      https://auth0.com/docs/quickstart/backend/rails/01-authorization

      希望对你有帮助。

      【讨论】:

      • 显然Knock库有问题,但我没有太多时间去调查它。
      • 虽然答案可以包含参考资料的链接,但答案本身至少应该包含问题的独立解决方案。
      • 同意@Johan。但是我想补充一点,您还应该解决 OP 代码不起作用的原因,这样我们不仅可以理解为什么其他事情是正确的,而且可以理解为什么当前的方法不正确
      猜你喜欢
      • 2017-10-04
      • 2020-03-25
      • 2016-10-02
      • 2017-10-24
      • 1970-01-01
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      相关资源
      最近更新 更多