OmnideskAuth
Installation
Add this line to your application's Gemfile:
gem 'omnidesk_auth'
And then execute:
$ bundle
Or install it yourself as:
$ gem install omnidesk_auth
Usage
Rails
Configure
# config/initializers/omnidesk_auth.rb
OmnideskAuth.configure do |auth|
auth.endpoint = 'http://mycompany.omnidesk.ru'
auth.secret = '<secret token>'
end
Note: The OmnideskAuth module takes the configuration defaults from environment variables:
- OMNIDESK_AUTH_SECRET
- OMNIDESK_AUTH_ENDPOINT
- OMNIDESK_AUTH_EXPIRE
Controller
# app/controllers/support_controller.rb
class SupportController < ApplicationController
def omnidesk_sign_in
redirect_to OmnideskAuth.sso_auth_url(email: current_user.email)
end
end
According to the documentation omnidesk service accepts as binding the following fields:
- iat (required) - Issued At (the time when the token was generated))
- email (required) - user email
Parameter "iat" is installed automatically during the generation of the token, but is also available for self-installation via the options hash. Parameter email is the only field that you need to be sure to pass.
Example of filling in all possible fields:
def omnidesk_sign_in
redirect_to OmnideskAuth.sso_auth_url(
iat: Time.current.to_i,
name: current_user.name,
email: current_user.email,
external_id: current_user.id,
company_name: current_user.company.name,
company_position: current_user.position,
remote_photo_url: current_user.avatar_url,
exp: 1.day)
end
See more: Omnidesk documention
License
The gem is available as open source under the terms of the MIT License.