Method: Sandal.encode_token
- Defined in:
- lib/sandal.rb
.encode_token(payload, signer, header_fields = nil) ⇒ String
Creates a signed JSON Web Token.
104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/sandal.rb', line 104 def self.encode_token(payload, signer, header_fields = nil) signer ||= Sandal::Sig::NONE header = {} header["alg"] = signer.name header = header_fields.merge(header) if header_fields header = Sandal::Json.dump(header) payload = Sandal::Json.dump(payload) unless payload.is_a?(String) sec_input = [header, payload].map { |p| Sandal::Util.jwt_base64_encode(p) }.join(".") signature = signer.sign(sec_input) [sec_input, Sandal::Util.jwt_base64_encode(signature)].join(".") end |