首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Rails中的现有用户模型添加devise-jwt时出现的问题

向Rails中的现有用户模型添加devise-jwt时出现的问题
EN

Stack Overflow用户
提问于 2019-10-23 22:20:54
回答 1查看 283关注 0票数 1

我正在尝试将devise-jwt添加到我现有的应用程序中。我现在正在添加API端点,并希望使用已有的相同模型

我在本文后面添加了gem devise-jwt:https://medium.com/@mazik.wyry/rails-5-api-jwt-setup-in-minutes-using-devise-71670fd4ed03

我使用以下命令配置了我的devise.rb文件:

代码语言:javascript
复制
config.jwt do |jwt|
  jwt.secret = ENV['DEVISE_JWT_SECRET_KEY']
  jwt.dispatch_requests = [
    ['POST', %r{^/login$}]
  ]
  jwt.revocation_requests = [
    ['DELETE', %r{^/logout$}]
  ]
  jwt.expiration_time = 1.day.to_i
end

我已经为它创建了我的jwt_blacklist.rb和迁移:

代码语言:javascript
复制
class CreateJwtBlacklist < ActiveRecord::Migration[6.0]
  def change
    create_table :jwt_blacklist do |t|
      t.string :jti, null: false
    end
    add_index :jwt_blacklist, :jti
  end
end

class JWTBlacklist < ApplicationRecord
  include Devise::JWT::RevocationStrategies::Blacklist

  self.table_name = 'jwt_blacklist'
end

当我尝试将这些行添加到我的user.rb中时

代码语言:javascript
复制
class User < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable, :confirmable,
        :recoverable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:facebook],
        :jwt_authenticatable,
        jwt_revocation_strategy: JWTBlacklist

当我尝试启动我的服务器时,我得到了:

代码语言:javascript
复制
/Users/fmaymone/.rvm/gems/ruby-2.6.3/gems/activesupport- 
6.0.0/lib/active_support/dependencies.rb:511:in `load': /booksculp/app/models/user.rb:6: 
syntax error, unexpected ',', expecting => (SyntaxError)
    :jwt_authenticatable ,

有人知道我做错了什么吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-11-14 09:51:16

将您的User模型更改为以下内容:

代码语言:javascript
复制
class User < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable, :confirmable,
        :recoverable, :rememberable, :trackable, :validatable, :omniauthable,
        :jwt_authenticatable, jwt_revocation_strategy: JWTBlacklist, omniauth_providers: [:facebook]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58525004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档