Skip to content

COMPEON/compeon-access_token

Repository files navigation

Compeon::AccessToken

TODO: Delete this and the text above, and describe your gem

Installation

Add this line to your application's Gemfile:

gem 'compeon-access_token'

And then execute:

$ bundle

Or install it yourself as:

$ gem install compeon-access_token

Usage

Encode a token

token = Compeon::Token::Access.new(
  client_id: 'compeon-auth',
  role: 'customer',
  user_id: '123'
)

token.aud = 'audience'
token.iat = Time.now.to_i
token.exp = Time.now.to_i + 3600 # 1 Expiry time is required and must be in the future.
token.iss = 'issuer'
token.sub = 'subject'

token.encode(key: OpenSSL::PKey::RSA.new(private_key_string))
# => eyJhbGciOiJIUzI1NiIsInR5cC...

Decode a token

token = Compeon::Token::Access.decode(
  encoded_token: 'eyJhbGciOiJIUzI1NiIsInR5cC...',
  key: OpenSSL::PKey::RSA.new(private_key_string).public_key
)

token.client_id # => 'compeon-auth'
token.role # => 'customer'
token.user_id # => '123'
token.aud # => 'audience'
token.iss # => 'issuer'
# etc.

Decode a token and verify reserved claims

token = Compeon::Token::Access.decode(
  # The `exp` claim is validated by default and is not needed here
  claim_verifications: { aud: 'audience', iat: true, iss: 'issuer', sub: 'subject' },
  encoded_token: 'eyJhbGciOiJIUzI1NiIsInR5cC...',
  key: OpenSSL::PKey::RSA.new(private_key_string).public_key
)

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/compeon/compeon-access_token.

License

The gem is available as open source under the terms of the MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published