Layer::IdentityToken
Use this class to generate a token for authenticating the Layer SDK
Installation
Add this line to your application's Gemfile:
gem 'layer-identity_token'
And then execute:
$ bundle
Or install it yourself as:
$ gem install layer-identity_token
Setup
- Create a layer app
- Write down your
provider ID
(app's info tab) - Create a new private key (app's authentication tab – we recommend to create keys for each developer and/or environments like: staging, development)
- Save the
private key
and note thekey ID
Usage
token = Layer::IdentityToken.new(user_id, nonce, optional_expires_at)
token.encode
Integration
If you want to return this token as JSON and your framework (like Rails) uses #as_json
you just write a controller like:
class ApiController
def hello_layer
token = Layer::IdentityToken.new(current_user.id, params[:nonce])
render json: token
end
end
Usage with Identity attributes
If you want to set some attributes on the Layer Identity, allowed attributes are: first_name
, last_name
, display_name
, and avatar_url
:
token = Layer::IdentityToken.new(user.id, nonce, expires_at, {
'first_name' => user.first_name,
'last_name' => user.last_name,
'display_name' => user.display_name,
'avatar_url' => user.avatar_url
})
token.encode
Configuration
Per default the class looks for ENV variables like:
LAYER_PROVIDER_ID
LAYER_KEY_ID
LAYER_PRIVATE_KEY
If you can not set ENV variables you can also set them on the class directly:
Layer::IdentityToken.layer_provider_id = "layer:///providers/PROVIDER_ID"
Layer::IdentityToken.layer_key_id = "layer:///keys/KEY_ID"
Layer::IdentityToken.layer_private_key = "private_key"
The prefixes are not needed necessarily as we do some normalizing on these IDs for compatibility reasons.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request