Проблемы при добавлении devise-jwt к пользовательской модели existente в Rails - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь добавить devise-jwt в имеющееся у меня приложение. Я сейчас добавляю конечные точки API и хочу использовать ту же модель, что у меня уже есть

Я добавил gem devise-jwt после этой статьи: https://medium.com/@mazik.wyry/rails-5-api-jwt-setup-in-minutes-using-devise-71670fd4ed03

Я настроил свой devise.rbфайл с:

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 и миграции для него:

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

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

И когда я пытаюсь запустить свой сервер, я получаю:

/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 ,

Кто-то знает, что я здесь не так делаю?

спасибо

1 Ответ

0 голосов
/ 14 ноября 2019

Измените модель User на следующую:

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]
...