如何在仅API的Rails应用程序中使用devise gem进行身份验证

时间:2016-03-04 12:48:33

标签: ruby-on-rails devise

我想用devise gem创建一个rails API进行身份验证。 我正在使用Chrome Postman检查API输出。

我的环境:

  • Rails 4.2
  • Ruby 2.3

我做了什么:

  1. rails new my_api
    cd my_api
    
  2. Gemfile

  3. 中添加了设计宝石
  4. bundle install
  5. 加入

    config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
    

    environment/development.rb

  6. 使用rails console
  7. 创建了一个用户

    之后我尝试从邮递员登录。 我将emailpassword放入邮递员的标题中。

    POST  http://localhost:3000/users/sign_in
    

    标题

    电子邮件 abcd @ gamilcom

    密码 abcd1234

    但它没有进行身份验证。我需要做什么?

2 个答案:

答案 0 :(得分:9)

您可能希望在API上下文中使用knockdevise_token_auth。好心,您的电子邮件似乎无效。我不了解邮递员,但POST参数应该存在于您的HTTP请求正文中。

答案 1 :(得分:0)

默认情况下,Devise上的HTTP Basic Auth是关闭的。启用它很简单,对于大多数API而言,基本身份验证就足够了。

您需要做两件事才能启用HTTP基本身份验证:

    用户/帐户模型中的
  • :database_authenticatable策略
  • 设计初始化程序中的
  • config.http_authenticatable = true

在此处查看更多信息: https://github.com/plataformatec/devise/wiki/How-To:-Use-HTTP-Basic-Authentication