If you ever find yourself in a situation where you need to decrypt the NextAuth.js session token on your Ruby backend, look no further than this gem. It’s specifically designed to make the decryption process easy and seamless. The source code for this library has been extracted from Cooper Pet Care’s code base.
Add this gem to your Gemfile:
gem 'next-auth-session-token-decoder', '~> 0.1.0', require: 'next_auth_decoder'
and run bundle install
.
token = 'eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..VxVkx9tG5eLKexs-.GQ792tADkdL10q_EntQO6bu-QYgr2gIqx7RwfRzA7HkMMrQ8Bu5Bfgh5UjYnI6J9bnagd6C_eOoQTMypMkXynPX_ogEEwlxLZLTXgn2yFTIDZHFEyXlmV53_FRJ82BNoYLv76lVZuNJwYdID8R-2thjML2VE3AblcNn2KJNCreXMztPrN9-AwOlAHofK3Q.14-TZcu0Br4kS7IPWhlC8g'
options = {
info: 'NextAuth.js Generated Encryption Key',
secret: 'super-secret-key',
}
NextAuthDecoder::Token.new(token, options).decode
=>
{
"email"=>"test@email.com",
"username"=>"Test username",
"iat"=>1678818018,
"exp"=>1681410018,
"sub"=>"2",
"jti"=>"ef109254-6cc0-4939-8cd3-faf172cd790f"
}
First install dependencies:
bundle install
Now you're ready to test it:
bundle exec rspec spec
Bug reports and pull requests are welcome on GitHub at https://github.com/cooperpetcare/next-auth-session-token-decoder.
The gem is available as open source under the terms of the MIT License.