kabk 1.0.0
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 +7 -0
- data/CHANGELOG.md +20 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +105 -0
- data/Kabk_logo.svg +33 -0
- data/LICENSE +21 -0
- data/README.md +112 -0
- data/doc/Kabk/Adapters/Base.html +989 -0
- data/doc/Kabk/Adapters/SequelAdapter.html +1071 -0
- data/doc/Kabk/Adapters.html +120 -0
- data/doc/Kabk/ApiError.html +511 -0
- data/doc/Kabk/Auth/JwtStrategy.html +551 -0
- data/doc/Kabk/Auth.html +118 -0
- data/doc/Kabk/Concurrency.html +297 -0
- data/doc/Kabk/ConcurrencyConflictError.html +234 -0
- data/doc/Kabk/Error.html +140 -0
- data/doc/Kabk/ExportHandler.html +381 -0
- data/doc/Kabk/Field.html +2160 -0
- data/doc/Kabk/ForbiddenError.html +234 -0
- data/doc/Kabk/InvalidFieldError.html +145 -0
- data/doc/Kabk/InvalidOldPasswordError.html +234 -0
- data/doc/Kabk/NotFoundError.html +234 -0
- data/doc/Kabk/QueryBuilder.html +701 -0
- data/doc/Kabk/Registry.html +608 -0
- data/doc/Kabk/RelationHydrator.html +480 -0
- data/doc/Kabk/Resource.html +1986 -0
- data/doc/Kabk/ResourceBuilder.html +1002 -0
- data/doc/Kabk/RestEngine.html +887 -0
- data/doc/Kabk/SchemaRenderer.html +318 -0
- data/doc/Kabk/UnauthorizedError.html +234 -0
- data/doc/Kabk/UploadHandler.html +308 -0
- data/doc/Kabk/ValidationError.html +234 -0
- data/doc/Kabk/Validator.html +802 -0
- data/doc/Kabk.html +330 -0
- data/doc/_index.html +369 -0
- data/doc/class_list.html +54 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +206 -0
- data/doc/css/style.css +1089 -0
- data/doc/file.README.html +162 -0
- data/doc/file_list.html +59 -0
- data/doc/frames.html +22 -0
- data/doc/index.html +162 -0
- data/doc/js/app.js +801 -0
- data/doc/js/full_list.js +334 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +982 -0
- data/doc/top-level-namespace.html +112 -0
- data/docs/API_REFERENCE.md +255 -0
- data/lib/kabk/adapters/base.rb +53 -0
- data/lib/kabk/adapters/sequel_adapter.rb +138 -0
- data/lib/kabk/concurrency.rb +30 -0
- data/lib/kabk/errors.rb +68 -0
- data/lib/kabk/field.rb +97 -0
- data/lib/kabk/query_builder.rb +103 -0
- data/lib/kabk/registry.rb +41 -0
- data/lib/kabk/relation_hydrator.rb +107 -0
- data/lib/kabk/resource.rb +88 -0
- data/lib/kabk/resource_builder.rb +95 -0
- data/lib/kabk/rest_engine.rb +120 -0
- data/lib/kabk/schema_renderer.rb +69 -0
- data/lib/kabk/upload_handler.rb +24 -0
- data/lib/kabk/validator.rb +121 -0
- data/lib/kabk/version.rb +6 -0
- data/lib/kabk.rb +50 -0
- metadata +178 -0
|
@@ -0,0 +1,551 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>
|
|
7
|
+
Class: Kabk::Auth::JwtStrategy
|
|
8
|
+
|
|
9
|
+
— Documentation by YARD 0.9.45
|
|
10
|
+
|
|
11
|
+
</title>
|
|
12
|
+
|
|
13
|
+
<link rel="stylesheet" href="../../css/style.css" type="text/css">
|
|
14
|
+
|
|
15
|
+
<link rel="stylesheet" href="../../css/common.css" type="text/css">
|
|
16
|
+
|
|
17
|
+
<script type="text/javascript">
|
|
18
|
+
pathId = "Kabk::Auth::JwtStrategy";
|
|
19
|
+
relpath = '../../';
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
<script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
|
|
24
|
+
|
|
25
|
+
<script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div id="main_progress" aria-hidden="true"></div>
|
|
31
|
+
|
|
32
|
+
<div class="nav_wrap">
|
|
33
|
+
<iframe id="nav" src="../../class_list.html?1"></iframe>
|
|
34
|
+
<div id="resizer"></div>
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
<div id="main" tabindex="-1">
|
|
38
|
+
<div id="header">
|
|
39
|
+
<div id="menu">
|
|
40
|
+
|
|
41
|
+
<a href="../../_index.html">Index (J)</a> »
|
|
42
|
+
<span class='title'><span class='object_link'><a href="../../Kabk.html" title="Kabk (module)">Kabk</a></span></span> » <span class='title'><span class='object_link'><a href="../Auth.html" title="Kabk::Auth (module)">Auth</a></span></span>
|
|
43
|
+
»
|
|
44
|
+
<span class="title">JwtStrategy</span>
|
|
45
|
+
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div id="search">
|
|
49
|
+
|
|
50
|
+
<a class="full_list_link" id="class_list_link"
|
|
51
|
+
href="../../class_list.html">
|
|
52
|
+
|
|
53
|
+
<svg width="24" height="24">
|
|
54
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
|
55
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
|
56
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
|
57
|
+
</svg>
|
|
58
|
+
</a>
|
|
59
|
+
|
|
60
|
+
</div>
|
|
61
|
+
<div class="clear"></div>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<div id="content"><h1>Class: Kabk::Auth::JwtStrategy
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
</h1>
|
|
69
|
+
<div class="box_info">
|
|
70
|
+
|
|
71
|
+
<dl>
|
|
72
|
+
<dt>Inherits:</dt>
|
|
73
|
+
<dd>
|
|
74
|
+
<span class="inheritName">Object</span>
|
|
75
|
+
|
|
76
|
+
<ul class="fullTree">
|
|
77
|
+
<li>Object</li>
|
|
78
|
+
|
|
79
|
+
<li class="next">Kabk::Auth::JwtStrategy</li>
|
|
80
|
+
|
|
81
|
+
</ul>
|
|
82
|
+
<a href="#" class="inheritanceTree">show all</a>
|
|
83
|
+
|
|
84
|
+
</dd>
|
|
85
|
+
</dl>
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
<dl>
|
|
98
|
+
<dt>Defined in:</dt>
|
|
99
|
+
<dd>lib/kabk/auth/jwt_strategy.rb
|
|
100
|
+
</dd>
|
|
101
|
+
</dl>
|
|
102
|
+
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
<h2>Overview</h2><div class="docstring">
|
|
106
|
+
<div class="discussion">
|
|
107
|
+
<p>A pluggable JWT authentication strategy for Kabk</p>
|
|
108
|
+
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
<div class="tags">
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
<h2>
|
|
123
|
+
Instance Method Summary
|
|
124
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
|
125
|
+
</h2>
|
|
126
|
+
|
|
127
|
+
<ul class="summary">
|
|
128
|
+
|
|
129
|
+
<li class="public ">
|
|
130
|
+
<span class="summary_signature">
|
|
131
|
+
|
|
132
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(secret:, default_exp: 86_400) ⇒ JwtStrategy </a>
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
</span>
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
<span class="note title constructor">constructor</span>
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
<span class="summary_desc"><div class='inline'><p>You should initialize this with your application's JWT secret.</p></div></span>
|
|
149
|
+
|
|
150
|
+
</li>
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
<li class="public ">
|
|
154
|
+
<span class="summary_signature">
|
|
155
|
+
|
|
156
|
+
<a href="#login-instance_method" title="#login (instance method)">#<strong>login</strong>(username, password) {|username, password| ... } ⇒ Object </a>
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
</span>
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
<span class="summary_desc"><div class='inline'><p>Validates user credentials and returns tokens and user context In a real app, this should check against the DB.</p></div></span>
|
|
171
|
+
|
|
172
|
+
</li>
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
<li class="public ">
|
|
176
|
+
<span class="summary_signature">
|
|
177
|
+
|
|
178
|
+
<a href="#refresh-instance_method" title="#refresh (instance method)">#<strong>refresh</strong>(refresh_token) ⇒ Object </a>
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
</span>
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
<span class="summary_desc"><div class='inline'><p>Refresh an access token using a refresh token.</p></div></span>
|
|
193
|
+
|
|
194
|
+
</li>
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
<li class="public ">
|
|
198
|
+
<span class="summary_signature">
|
|
199
|
+
|
|
200
|
+
<a href="#verify_access_token!-instance_method" title="#verify_access_token! (instance method)">#<strong>verify_access_token!</strong>(token) ⇒ Object </a>
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
</span>
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
<span class="summary_desc"><div class='inline'><p>Verifies an access token and returns decoded payload.</p></div></span>
|
|
215
|
+
|
|
216
|
+
</li>
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
</ul>
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
<div id="constructor_details" class="method_details_list">
|
|
224
|
+
<h2>Constructor Details</h2>
|
|
225
|
+
|
|
226
|
+
<div class="method_details first">
|
|
227
|
+
<h3 class="signature first" id="initialize-instance_method">
|
|
228
|
+
|
|
229
|
+
#<strong>initialize</strong>(secret:, default_exp: 86_400) ⇒ <tt><span class='object_link'><a href="" title="Kabk::Auth::JwtStrategy (class)">JwtStrategy</a></span></tt>
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
</h3><div class="docstring">
|
|
236
|
+
<div class="discussion">
|
|
237
|
+
<p>You should initialize this with your application's JWT secret</p>
|
|
238
|
+
|
|
239
|
+
</div>
|
|
240
|
+
</div>
|
|
241
|
+
<div class="tags">
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
</div><table class="source_code">
|
|
245
|
+
<tr>
|
|
246
|
+
<td>
|
|
247
|
+
<pre class="lines">
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
11
|
|
251
|
+
12
|
|
252
|
+
13
|
|
253
|
+
14</pre>
|
|
254
|
+
</td>
|
|
255
|
+
<td>
|
|
256
|
+
<pre class="code"><span class="info file"># File 'lib/kabk/auth/jwt_strategy.rb', line 11</span>
|
|
257
|
+
|
|
258
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='label'>secret:</span><span class='comma'>,</span> <span class='label'>default_exp:</span> <span class='int'>86_400</span><span class='rparen'>)</span>
|
|
259
|
+
<span class='ivar'>@secret</span> <span class='op'>=</span> <span class='id identifier rubyid_secret'>secret</span>
|
|
260
|
+
<span class='ivar'>@default_exp</span> <span class='op'>=</span> <span class='id identifier rubyid_default_exp'>default_exp</span>
|
|
261
|
+
<span class='kw'>end</span></pre>
|
|
262
|
+
</td>
|
|
263
|
+
</tr>
|
|
264
|
+
</table>
|
|
265
|
+
</div>
|
|
266
|
+
|
|
267
|
+
</div>
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
<div id="instance_method_details" class="method_details_list">
|
|
271
|
+
<h2>Instance Method Details</h2>
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
<div class="method_details first">
|
|
275
|
+
<h3 class="signature first" id="login-instance_method">
|
|
276
|
+
|
|
277
|
+
#<strong>login</strong>(username, password) {|username, password| ... } ⇒ <tt>Object</tt>
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
</h3><div class="docstring">
|
|
284
|
+
<div class="discussion">
|
|
285
|
+
<p>Validates user credentials and returns tokens and user context
|
|
286
|
+
In a real app, this should check against the DB.</p>
|
|
287
|
+
|
|
288
|
+
</div>
|
|
289
|
+
</div>
|
|
290
|
+
<div class="tags">
|
|
291
|
+
<p class="tag_title">Parameters:</p>
|
|
292
|
+
<ul class="param">
|
|
293
|
+
|
|
294
|
+
<li>
|
|
295
|
+
|
|
296
|
+
<span class='name'>username</span>
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
</li>
|
|
304
|
+
|
|
305
|
+
<li>
|
|
306
|
+
|
|
307
|
+
<span class='name'>password</span>
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
</li>
|
|
315
|
+
|
|
316
|
+
</ul>
|
|
317
|
+
|
|
318
|
+
<p class="tag_title">Yields:</p>
|
|
319
|
+
<ul class="yield">
|
|
320
|
+
|
|
321
|
+
<li>
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
<span class='type'>(<tt>username</tt>, <tt>password</tt>)</span>
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
—
|
|
329
|
+
<div class='inline'><p>Should yield and return user data if valid, or nil</p></div>
|
|
330
|
+
|
|
331
|
+
</li>
|
|
332
|
+
|
|
333
|
+
</ul>
|
|
334
|
+
<p class="tag_title">Raises:</p>
|
|
335
|
+
<ul class="raise">
|
|
336
|
+
|
|
337
|
+
<li>
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
<span class='type'>(<tt><span class='object_link'><a href="../UnauthorizedError.html" title="Kabk::UnauthorizedError (class)">UnauthorizedError</a></span></tt>)</span>
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
</li>
|
|
345
|
+
|
|
346
|
+
</ul>
|
|
347
|
+
|
|
348
|
+
</div><table class="source_code">
|
|
349
|
+
<tr>
|
|
350
|
+
<td>
|
|
351
|
+
<pre class="lines">
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
21
|
|
355
|
+
22
|
|
356
|
+
23
|
|
357
|
+
24
|
|
358
|
+
25
|
|
359
|
+
26
|
|
360
|
+
27
|
|
361
|
+
28
|
|
362
|
+
29
|
|
363
|
+
30
|
|
364
|
+
31
|
|
365
|
+
32
|
|
366
|
+
33
|
|
367
|
+
34
|
|
368
|
+
35
|
|
369
|
+
36
|
|
370
|
+
37
|
|
371
|
+
38
|
|
372
|
+
39</pre>
|
|
373
|
+
</td>
|
|
374
|
+
<td>
|
|
375
|
+
<pre class="code"><span class="info file"># File 'lib/kabk/auth/jwt_strategy.rb', line 21</span>
|
|
376
|
+
|
|
377
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_login'>login</span><span class='lparen'>(</span><span class='id identifier rubyid_username'>username</span><span class='comma'>,</span> <span class='id identifier rubyid_password'>password</span><span class='comma'>,</span> <span class='op'>&</span><span class='rparen'>)</span>
|
|
378
|
+
<span class='id identifier rubyid_user_data'>user_data</span> <span class='op'>=</span> <span class='kw'>yield</span><span class='lparen'>(</span><span class='id identifier rubyid_username'>username</span><span class='comma'>,</span> <span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span>
|
|
379
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../UnauthorizedError.html" title="Kabk::UnauthorizedError (class)">UnauthorizedError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Invalid credentials</span><span class='tstring_end'>"</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_user_data'>user_data</span>
|
|
380
|
+
|
|
381
|
+
<span class='id identifier rubyid_access_token'>access_token</span> <span class='op'>=</span> <span class='id identifier rubyid_generate_token'>generate_token</span><span class='lparen'>(</span><span class='lbrace'>{</span> <span class='label'>user_id:</span> <span class='id identifier rubyid_user_data'>user_data</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>type:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>access</span><span class='tstring_end'>"</span></span> <span class='rbrace'>}</span><span class='comma'>,</span> <span class='ivar'>@default_exp</span><span class='rparen'>)</span>
|
|
382
|
+
<span class='id identifier rubyid_refresh_token'>refresh_token</span> <span class='op'>=</span> <span class='id identifier rubyid_generate_token'>generate_token</span><span class='lparen'>(</span><span class='lbrace'>{</span> <span class='label'>user_id:</span> <span class='id identifier rubyid_user_data'>user_data</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>type:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>refresh</span><span class='tstring_end'>"</span></span> <span class='rbrace'>}</span><span class='comma'>,</span> <span class='ivar'>@default_exp</span> <span class='op'>*</span> <span class='int'>7</span><span class='rparen'>)</span>
|
|
383
|
+
|
|
384
|
+
<span class='lbrace'>{</span>
|
|
385
|
+
<span class='label'>success:</span> <span class='kw'>true</span><span class='comma'>,</span>
|
|
386
|
+
<span class='label'>message:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Authentication successful</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
|
387
|
+
<span class='label'>data:</span> <span class='lbrace'>{</span>
|
|
388
|
+
<span class='label'>token_type:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Bearer</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
|
389
|
+
<span class='label'>access_token:</span> <span class='id identifier rubyid_access_token'>access_token</span><span class='comma'>,</span>
|
|
390
|
+
<span class='label'>refresh_token:</span> <span class='id identifier rubyid_refresh_token'>refresh_token</span><span class='comma'>,</span>
|
|
391
|
+
<span class='label'>expires_in:</span> <span class='ivar'>@default_exp</span><span class='comma'>,</span>
|
|
392
|
+
<span class='label'>user:</span> <span class='id identifier rubyid_user_data'>user_data</span>
|
|
393
|
+
<span class='rbrace'>}</span>
|
|
394
|
+
<span class='rbrace'>}</span>
|
|
395
|
+
<span class='kw'>end</span></pre>
|
|
396
|
+
</td>
|
|
397
|
+
</tr>
|
|
398
|
+
</table>
|
|
399
|
+
</div>
|
|
400
|
+
|
|
401
|
+
<div class="method_details ">
|
|
402
|
+
<h3 class="signature " id="refresh-instance_method">
|
|
403
|
+
|
|
404
|
+
#<strong>refresh</strong>(refresh_token) ⇒ <tt>Object</tt>
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
</h3><div class="docstring">
|
|
411
|
+
<div class="discussion">
|
|
412
|
+
<p>Refresh an access token using a refresh token</p>
|
|
413
|
+
|
|
414
|
+
</div>
|
|
415
|
+
</div>
|
|
416
|
+
<div class="tags">
|
|
417
|
+
|
|
418
|
+
<p class="tag_title">Raises:</p>
|
|
419
|
+
<ul class="raise">
|
|
420
|
+
|
|
421
|
+
<li>
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
<span class='type'>(<tt><span class='object_link'><a href="../UnauthorizedError.html" title="Kabk::UnauthorizedError (class)">UnauthorizedError</a></span></tt>)</span>
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
</li>
|
|
429
|
+
|
|
430
|
+
</ul>
|
|
431
|
+
|
|
432
|
+
</div><table class="source_code">
|
|
433
|
+
<tr>
|
|
434
|
+
<td>
|
|
435
|
+
<pre class="lines">
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
50
|
|
439
|
+
51
|
|
440
|
+
52
|
|
441
|
+
53
|
|
442
|
+
54
|
|
443
|
+
55
|
|
444
|
+
56
|
|
445
|
+
57
|
|
446
|
+
58
|
|
447
|
+
59
|
|
448
|
+
60
|
|
449
|
+
61
|
|
450
|
+
62
|
|
451
|
+
63
|
|
452
|
+
64
|
|
453
|
+
65
|
|
454
|
+
66</pre>
|
|
455
|
+
</td>
|
|
456
|
+
<td>
|
|
457
|
+
<pre class="code"><span class="info file"># File 'lib/kabk/auth/jwt_strategy.rb', line 50</span>
|
|
458
|
+
|
|
459
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_refresh'>refresh</span><span class='lparen'>(</span><span class='id identifier rubyid_refresh_token'>refresh_token</span><span class='rparen'>)</span>
|
|
460
|
+
<span class='id identifier rubyid_payload'>payload</span> <span class='op'>=</span> <span class='id identifier rubyid_decode_token!'>decode_token!</span><span class='lparen'>(</span><span class='id identifier rubyid_refresh_token'>refresh_token</span><span class='rparen'>)</span>
|
|
461
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../UnauthorizedError.html" title="Kabk::UnauthorizedError (class)">UnauthorizedError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Invalid token type</span><span class='tstring_end'>"</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_payload'>payload</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>type</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>refresh</span><span class='tstring_end'>"</span></span>
|
|
462
|
+
|
|
463
|
+
<span class='id identifier rubyid_access_token'>access_token</span> <span class='op'>=</span> <span class='id identifier rubyid_generate_token'>generate_token</span><span class='lparen'>(</span><span class='lbrace'>{</span> <span class='label'>user_id:</span> <span class='id identifier rubyid_payload'>payload</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>user_id</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>type:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>access</span><span class='tstring_end'>"</span></span> <span class='rbrace'>}</span><span class='comma'>,</span> <span class='ivar'>@default_exp</span><span class='rparen'>)</span>
|
|
464
|
+
<span class='id identifier rubyid_new_refresh_token'>new_refresh_token</span> <span class='op'>=</span> <span class='id identifier rubyid_generate_token'>generate_token</span><span class='lparen'>(</span><span class='lbrace'>{</span> <span class='label'>user_id:</span> <span class='id identifier rubyid_payload'>payload</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>user_id</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>type:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>refresh</span><span class='tstring_end'>"</span></span> <span class='rbrace'>}</span><span class='comma'>,</span> <span class='ivar'>@default_exp</span> <span class='op'>*</span> <span class='int'>7</span><span class='rparen'>)</span>
|
|
465
|
+
|
|
466
|
+
<span class='lbrace'>{</span>
|
|
467
|
+
<span class='label'>success:</span> <span class='kw'>true</span><span class='comma'>,</span>
|
|
468
|
+
<span class='label'>data:</span> <span class='lbrace'>{</span>
|
|
469
|
+
<span class='label'>token_type:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Bearer</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
|
470
|
+
<span class='label'>access_token:</span> <span class='id identifier rubyid_access_token'>access_token</span><span class='comma'>,</span>
|
|
471
|
+
<span class='label'>refresh_token:</span> <span class='id identifier rubyid_new_refresh_token'>new_refresh_token</span><span class='comma'>,</span>
|
|
472
|
+
<span class='label'>expires_in:</span> <span class='ivar'>@default_exp</span>
|
|
473
|
+
<span class='rbrace'>}</span>
|
|
474
|
+
<span class='rbrace'>}</span>
|
|
475
|
+
<span class='kw'>end</span></pre>
|
|
476
|
+
</td>
|
|
477
|
+
</tr>
|
|
478
|
+
</table>
|
|
479
|
+
</div>
|
|
480
|
+
|
|
481
|
+
<div class="method_details ">
|
|
482
|
+
<h3 class="signature " id="verify_access_token!-instance_method">
|
|
483
|
+
|
|
484
|
+
#<strong>verify_access_token!</strong>(token) ⇒ <tt>Object</tt>
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
</h3><div class="docstring">
|
|
491
|
+
<div class="discussion">
|
|
492
|
+
<p>Verifies an access token and returns decoded payload</p>
|
|
493
|
+
|
|
494
|
+
</div>
|
|
495
|
+
</div>
|
|
496
|
+
<div class="tags">
|
|
497
|
+
|
|
498
|
+
<p class="tag_title">Raises:</p>
|
|
499
|
+
<ul class="raise">
|
|
500
|
+
|
|
501
|
+
<li>
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
<span class='type'>(<tt><span class='object_link'><a href="../UnauthorizedError.html" title="Kabk::UnauthorizedError (class)">UnauthorizedError</a></span></tt>)</span>
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
</li>
|
|
509
|
+
|
|
510
|
+
</ul>
|
|
511
|
+
|
|
512
|
+
</div><table class="source_code">
|
|
513
|
+
<tr>
|
|
514
|
+
<td>
|
|
515
|
+
<pre class="lines">
|
|
516
|
+
|
|
517
|
+
|
|
518
|
+
42
|
|
519
|
+
43
|
|
520
|
+
44
|
|
521
|
+
45
|
|
522
|
+
46
|
|
523
|
+
47</pre>
|
|
524
|
+
</td>
|
|
525
|
+
<td>
|
|
526
|
+
<pre class="code"><span class="info file"># File 'lib/kabk/auth/jwt_strategy.rb', line 42</span>
|
|
527
|
+
|
|
528
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_verify_access_token!'>verify_access_token!</span><span class='lparen'>(</span><span class='id identifier rubyid_token'>token</span><span class='rparen'>)</span>
|
|
529
|
+
<span class='id identifier rubyid_payload'>payload</span> <span class='op'>=</span> <span class='id identifier rubyid_decode_token!'>decode_token!</span><span class='lparen'>(</span><span class='id identifier rubyid_token'>token</span><span class='rparen'>)</span>
|
|
530
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../UnauthorizedError.html" title="Kabk::UnauthorizedError (class)">UnauthorizedError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Invalid token type</span><span class='tstring_end'>"</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_payload'>payload</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>type</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>access</span><span class='tstring_end'>"</span></span>
|
|
531
|
+
|
|
532
|
+
<span class='id identifier rubyid_payload'>payload</span>
|
|
533
|
+
<span class='kw'>end</span></pre>
|
|
534
|
+
</td>
|
|
535
|
+
</tr>
|
|
536
|
+
</table>
|
|
537
|
+
</div>
|
|
538
|
+
|
|
539
|
+
</div>
|
|
540
|
+
|
|
541
|
+
</div>
|
|
542
|
+
|
|
543
|
+
<div id="footer">
|
|
544
|
+
Generated on Fri Aug 7 15:53:12 2026 by
|
|
545
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
546
|
+
0.9.45 (ruby-4.0.6).
|
|
547
|
+
</div>
|
|
548
|
+
|
|
549
|
+
</div>
|
|
550
|
+
</body>
|
|
551
|
+
</html>
|
data/doc/Kabk/Auth.html
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>
|
|
7
|
+
Module: Kabk::Auth
|
|
8
|
+
|
|
9
|
+
— Documentation by YARD 0.9.45
|
|
10
|
+
|
|
11
|
+
</title>
|
|
12
|
+
|
|
13
|
+
<link rel="stylesheet" href="../css/style.css" type="text/css">
|
|
14
|
+
|
|
15
|
+
<link rel="stylesheet" href="../css/common.css" type="text/css">
|
|
16
|
+
|
|
17
|
+
<script type="text/javascript">
|
|
18
|
+
pathId = "Kabk::Auth";
|
|
19
|
+
relpath = '../';
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
|
24
|
+
|
|
25
|
+
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div id="main_progress" aria-hidden="true"></div>
|
|
31
|
+
|
|
32
|
+
<div class="nav_wrap">
|
|
33
|
+
<iframe id="nav" src="../class_list.html?1"></iframe>
|
|
34
|
+
<div id="resizer"></div>
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
<div id="main" tabindex="-1">
|
|
38
|
+
<div id="header">
|
|
39
|
+
<div id="menu">
|
|
40
|
+
|
|
41
|
+
<a href="../_index.html">Index (A)</a> »
|
|
42
|
+
<span class='title'><span class='object_link'><a href="../Kabk.html" title="Kabk (module)">Kabk</a></span></span>
|
|
43
|
+
»
|
|
44
|
+
<span class="title">Auth</span>
|
|
45
|
+
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div id="search">
|
|
49
|
+
|
|
50
|
+
<a class="full_list_link" id="class_list_link"
|
|
51
|
+
href="../class_list.html">
|
|
52
|
+
|
|
53
|
+
<svg width="24" height="24">
|
|
54
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
|
55
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
|
56
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
|
57
|
+
</svg>
|
|
58
|
+
</a>
|
|
59
|
+
|
|
60
|
+
</div>
|
|
61
|
+
<div class="clear"></div>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<div id="content"><h1>Module: Kabk::Auth
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
</h1>
|
|
69
|
+
<div class="box_info">
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
<dl>
|
|
82
|
+
<dt>Defined in:</dt>
|
|
83
|
+
<dd>lib/kabk/auth/jwt_strategy.rb
|
|
84
|
+
</dd>
|
|
85
|
+
</dl>
|
|
86
|
+
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
<h2>Defined Under Namespace</h2>
|
|
90
|
+
<p class="children">
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Auth/JwtStrategy.html" title="Kabk::Auth::JwtStrategy (class)">JwtStrategy</a></span>
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
</p>
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
<div id="footer">
|
|
111
|
+
Generated on Fri Aug 7 15:53:11 2026 by
|
|
112
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
113
|
+
0.9.45 (ruby-4.0.6).
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
</div>
|
|
117
|
+
</body>
|
|
118
|
+
</html>
|