Module: UserAuthHelper
- Included in:
- Cxf::AdminBaseController, Cxf::BaseApiController
- Defined in:
- lib/cxf/helpers/user_auth_helper.rb
Instance Method Summary collapse
-
#cxf_user_login(email, password) ⇒ Object
Cxf user Login.
-
#cxf_user_logout ⇒ Object
Cxf user Logout.
-
#cxf_user_magic_link_login(hash) ⇒ Object
Cxf user Login.
- #cxf_user_signed_in? ⇒ Boolean
- #update_user_tokens ⇒ Object
Instance Method Details
#cxf_user_login(email, password) ⇒ Object
Cxf user Login.
Starts a user session in cxf.cloud and set a session cookie
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/cxf/helpers/user_auth_helper.rb', line 22 def cxf_user_login(email, password) # Login in cxf response = @cxf_user.login(email, password) # Get session token from response if response.key? 'data' session_token = response['data']['access_token'] refresh_token = response['data']['refresh_token'] session_token_expires_at = Time.parse(response['data']['access_token_expires_at']) refresh_token_expires_at = Time.parse(response['data']['refresh_token_expires_at']) end # Set a permanent cookie with the session token [:cxf_user_session_token] = { value: session_token, secure: true, httponly: true, expires: Time.at(session_token_expires_at) } [:cxf_user_refresh_token] = { value: refresh_token, secure: true, httponly: true, expires: Time.at(refresh_token_expires_at) } end |
#cxf_user_logout ⇒ Object
Cxf user Logout.
Destroy session from cxf.cloud and delete local session cookie
57 58 59 60 61 62 63 |
# File 'lib/cxf/helpers/user_auth_helper.rb', line 57 def cxf_user_logout # Logout from cxf # @cxf_user.logout # Delete local cookie .delete(:cxf_user_session_token) .delete(:cxf_user_refresh_token) end |
#cxf_user_magic_link_login(hash) ⇒ Object
Cxf user Login.
Starts a user session in cxf.cloud and set a session cookie
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/cxf/helpers/user_auth_helper.rb', line 41 def cxf_user_magic_link_login(hash) # Login in cxf response = @cxf_user.magic_link_login(hash) if response['data'] # Set a cookie with the session token [:cxf_user_session_token] = { value: response['data']['access_token'], secure: true, httponly: true } [:cxf_user_refresh_token] = { value: response['data']['refresh_token'], secure: true, httponly: true } redirect_to response['data']['redirect_url'] || '/' else redirect_to '/' end end |
#cxf_user_signed_in? ⇒ Boolean
4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/cxf/helpers/user_auth_helper.rb', line 4 def cxf_user_signed_in? begin # Check status in cxf response = @cxf_user.me['data'] rescue => e # Handle the client Unauthorized error # if cxf response is negative delete the session cookie .delete(:cxf_user_session_token) .delete(:cxf_user_refresh_token) response = nil end response end |
#update_user_tokens ⇒ Object
65 66 67 68 69 70 71 72 73 |
# File 'lib/cxf/helpers/user_auth_helper.rb', line 65 def update_user_tokens access_token = @cxf_user.get_client.session_token refresh_token = @cxf_user.get_client.refresh_token access_token_expires_at = @cxf_user.get_client.session_token_expires_at refresh_token_expires_at = @cxf_user.get_client.refresh_token_expires_at [:cxf_user_session_token] = { value: access_token, secure: true, httponly: true, expires: Time.at(access_token_expires_at) } if access_token && access_token_expires_at [:cxf_user_refresh_token] = { value: refresh_token, secure: true, httponly: true, expires: Time.at(refresh_token_expires_at) } if refresh_token && refresh_token_expires_at end |