jwt-secure 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4dbd8af8175209d5332f6084208ef0eb36d1a393be1d9950338e3b5e28b78b01
4
- data.tar.gz: 51a095972461288b542a5d1170ce3bb5de5223760574ff5de9b39746e2423768
3
+ metadata.gz: 3125e1a0ebd6ab94b72eb50a397f2ed149d1782ad5597d4bcd4ffa6d9e32ef90
4
+ data.tar.gz: 30da8ba1e4be83030c96d68fb3036bddd380c777c35791357ab748a355c7fe3e
5
5
  SHA512:
6
- metadata.gz: b27a26ac3119cfff25d55c04ddf7a4f5d6f3c5ed73d57ae64604741a03dfafeb7b226c0fa4d5f6774930d9b0d8f274065cb263fc3ef0a5ac1cfc3eb01dac0f01
7
- data.tar.gz: 85c7ff975f3656246e1d21bcf6ac5559b6cefb48fb3f7970f843358fa85393be5d0b02745fa798a531a21240c34ac65277fada4d2ebd8ed3476c84b3b94a9b44
6
+ metadata.gz: ee130a9f8897bc02a0513dc963a6e862505e2c66a16681aa4d2408716b92c6d2165926fa05fb80e22f2dc6d19c4adeb866450bf998902a7787c9e72ac49dd688
7
+ data.tar.gz: 8c8a2e3d1c4e13b5fd58dd6e1112d655cb19a043e04df721683633bae77455a50c1c388f88eefec5a7a77c2f3b49617e30cb0ce809873835993bd87fd4906811
@@ -0,0 +1,69 @@
1
+ require "jwt"
2
+
3
+
4
+ class JsonWebToken
5
+ def self.encode(payload, key)
6
+ JWT.encode(payload,key)
7
+ end
8
+
9
+ def self.decode(token, key)
10
+ puts key
11
+ JWT.decode(token,key).first
12
+ end
13
+
14
+ end
15
+
16
+ module JwtSecure
17
+ class ApiJwtController < ApplicationController
18
+ before_action(:authenticate_jwtsecure)
19
+
20
+
21
+ def authenticate_jwtsecure()
22
+ begin
23
+ payload = JsonWebToken.decode(get_auth_token, @jwtsecure_secret)
24
+ if payload.present?
25
+ @current_user = User.find(payload["user_id"])
26
+ else
27
+ render json: {errors: ["Invalid Token, user not found!"]}, status: :unauthorized
28
+ end
29
+ rescue
30
+ render json: {errors: ["token not found!"]}, status: :unauthorized
31
+ end
32
+ end
33
+
34
+ def get_auth_token()
35
+ @auth_token ||= cookies.encrypted[@jwtsecure_cookiename]
36
+ end
37
+ end
38
+
39
+ class AuthController < ApplicationController
40
+ def login
41
+ # find user
42
+ user = @jwtsecure_usermodel.find_by(@jwtsecure_findby)
43
+
44
+ if user && user.authenticate(@jwtsecure_password)
45
+ # password is correct -> proced to login
46
+ # set toke inside httpOnly Cookie
47
+ jwt_token = JsonWebToken.encode({user_id: user.id},@jwtsecure_secret)
48
+ cookies.encrypted[@jwtsecure_cookiename] = {
49
+ value: jwt_token,
50
+ http_only: true,
51
+ same_site: :strict
52
+ }
53
+ render json: {message: "Successfull login!", success: true, user: user}, status: :ok
54
+ else
55
+ # password incorrect -> failed login
56
+ render json: {errors: ["Invalid email or password"], success: false}, status: :unauthorized
57
+ end
58
+ end
59
+
60
+ def logout
61
+ cookies.encrypted[@jwtsecure_cookiename] = {
62
+ value: "",
63
+ http_only: true,
64
+ same_site: :strict
65
+ }
66
+ render json: {message: "logged out, cookie removed", success: true}, status: :ok
67
+ end
68
+ end
69
+ end
@@ -1,5 +1,6 @@
1
1
  module JwtSecure
2
2
  class Engine < ::Rails::Engine
3
+ paths.add "lib", eager_load: true
3
4
  isolate_namespace JwtSecure
4
5
  end
5
6
  end
data/lib/jwt_secure.rb ADDED
@@ -0,0 +1,6 @@
1
+ require_relative "jwt_secure/engine"
2
+ require_relative "jwt_secure/controllers"
3
+
4
+ module JwtSecure
5
+
6
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jwt-secure
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - M Alvee
@@ -45,10 +45,9 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
- - app/config/routes.rb
49
- - app/controller/jwt-secure/jwt-secure_controller.rb
50
- - lib/jwt-secure.rb
51
- - lib/jwt-secure/engine.rb
48
+ - lib/jwt_secure.rb
49
+ - lib/jwt_secure/controllers.rb
50
+ - lib/jwt_secure/engine.rb
52
51
  homepage: https://github.com/0xMALVEE/jwt-secure
53
52
  licenses:
54
53
  - MIT
data/app/config/routes.rb DELETED
@@ -1,3 +0,0 @@
1
- JwtSecure::Engine.routes.draw do
2
- get '/api/token', to: 'tokens#generate'
3
- end
@@ -1,7 +0,0 @@
1
- module JwtSecure
2
- class TokensController < ApplicationController
3
- def generate
4
- render json: { token: 'kasdfuower' }
5
- end
6
- end
7
- end
data/lib/jwt-secure.rb DELETED
@@ -1,4 +0,0 @@
1
- require 'jwt-secure/engine'
2
-
3
- module JwtSecure
4
- end