6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/spree/api/testing_support/v3/base.rb', line 6
def self.generate_jwt(user, expiration: 1.hour.to_i, audience: Spree::Api::V3::JwtAuthentication::JWT_AUDIENCE_STORE)
user_type = user.is_a?(Spree.admin_user_class) ? 'admin' : 'customer'
payload = {
user_id: user.id,
user_type: user_type,
jti: SecureRandom.uuid,
iss: Spree::Api::V3::JwtAuthentication::JWT_ISSUER,
aud: audience,
exp: Time.current.to_i + expiration
}
secret = Spree::Api::Config[:jwt_secret_key].presence ||
Rails.application.credentials.jwt_secret_key ||
ENV['JWT_SECRET_KEY'] ||
Rails.application.secret_key_base
JWT.encode(payload, secret, 'HS256')
end
|