質問編集履歴

3

使用エディタ追加

2021/01/02 11:22

投稿

AkitoshiShiga
AkitoshiShiga

スコア6

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  リクエストはLaravelのルーティング機能を介してコントローラに渡され、App\Models\UserがSanctumのHashApiTokensのトレイトを使用することでアクセストークンを発行する処理を実装しましたが、
8
8
 
9
- Userで参照しているはずのHshApiTokensを使用できない状況です。
9
+ Userで参照しているはずのHashApiTokensを使用できない状況です。
10
10
 
11
11
  ググって出てきたものは全て試してみましたが、解決していない状況です。
12
12
 
@@ -20,6 +20,8 @@
20
20
 
21
21
  ### 環境
22
22
 
23
+ * エディタPhpStorm、VSコード
24
+
23
25
  ##docker-composeを用いて以下のイメージで作成したコンテナを使用
24
26
 
25
27
  ### php_8.0

2

HashApiTokensのソースコードを追加

2021/01/02 11:22

投稿

AkitoshiShiga
AkitoshiShiga

スコア6

test CHANGED
File without changes
test CHANGED
@@ -164,6 +164,166 @@
164
164
 
165
165
  ```php
166
166
 
167
+ HashApiTokens
168
+
169
+ <?php
170
+
171
+
172
+
173
+ namespace Laravel\Sanctum;
174
+
175
+
176
+
177
+ use Illuminate\Support\Str;
178
+
179
+
180
+
181
+ trait HasApiTokens
182
+
183
+ {
184
+
185
+ /**
186
+
187
+ * The access token the user is using for the current request.
188
+
189
+ *
190
+
191
+ * @var \Laravel\Sanctum\Contracts\HasAbilities
192
+
193
+ */
194
+
195
+ protected $accessToken;
196
+
197
+
198
+
199
+ /**
200
+
201
+ * Get the access tokens that belong to model.
202
+
203
+ *
204
+
205
+ * @return \Illuminate\Database\Eloquent\Relations\MorphMany
206
+
207
+ */
208
+
209
+ public function tokens()
210
+
211
+ {
212
+
213
+ return $this->morphMany(Sanctum::$personalAccessTokenModel, 'tokenable');
214
+
215
+ }
216
+
217
+
218
+
219
+ /**
220
+
221
+ * Determine if the current API token has a given scope.
222
+
223
+ *
224
+
225
+ * @param string $ability
226
+
227
+ * @return bool
228
+
229
+ */
230
+
231
+ public function tokenCan(string $ability)
232
+
233
+ {
234
+
235
+ return $this->accessToken ? $this->accessToken->can($ability) : false;
236
+
237
+ }
238
+
239
+
240
+
241
+ /**
242
+
243
+ * Create a new personal access token for the user.
244
+
245
+ *
246
+
247
+ * @param string $name
248
+
249
+ * @param array $abilities
250
+
251
+ * @return \Laravel\Sanctum\NewAccessToken
252
+
253
+ */
254
+
255
+ public function createToken(string $name, array $abilities = ['*'])//これをUserの関数としてコントローラーから呼び出したい
256
+
257
+ {
258
+
259
+ $token = $this->tokens()->create([
260
+
261
+ 'name' => $name,
262
+
263
+ 'token' => hash('sha256', $plainTextToken = Str::random(40)),
264
+
265
+ 'abilities' => $abilities,
266
+
267
+ ]);
268
+
269
+
270
+
271
+ return new NewAccessToken($token, $token->id.'|'.$plainTextToken);
272
+
273
+ }
274
+
275
+
276
+
277
+ /**
278
+
279
+ * Get the access token currently associated with the user.
280
+
281
+ *
282
+
283
+ * @return \Laravel\Sanctum\Contracts\HasAbilities
284
+
285
+ */
286
+
287
+ public function currentAccessToken()
288
+
289
+ {
290
+
291
+ return $this->accessToken;
292
+
293
+ }
294
+
295
+
296
+
297
+ /**
298
+
299
+ * Set the current access token for the user.
300
+
301
+ *
302
+
303
+ * @param \Laravel\Sanctum\Contracts\HasAbilities $accessToken
304
+
305
+ * @return $this
306
+
307
+ */
308
+
309
+ public function withAccessToken($accessToken)
310
+
311
+ {
312
+
313
+ $this->accessToken = $accessToken;
314
+
315
+
316
+
317
+ return $this;
318
+
319
+ }
320
+
321
+ }
322
+
323
+ ```
324
+
325
+ ```php
326
+
167
327
  ソースコード_コントローラー
168
328
 
169
329
  <?php

1

誤字の修正

2021/01/02 10:31

投稿

AkitoshiShiga
AkitoshiShiga

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,8 @@
1
- ### 前提・実現したいこと
1
+ ### 前提
2
2
 
3
3
  Laravel8でSanctumを用いた認証機能を実装中です。
4
4
 
5
- フロントでVue.jsを用いており、そこからaxiosで認証情報をjson形式でリクエストに追加して、Laravel側にリクエストを送っています。
5
+ フロントでVue.jsを用いており、そこからaxiosで認証情報をjson形式でリクエストに追加して、Laravel側にPOSTメソッドを送っています。
6
6
 
7
7
  リクエストはLaravelのルーティング機能を介してコントローラに渡され、App\Models\UserがSanctumのHashApiTokensのトレイトを使用することでアクセストークンを発行する処理を実装しましたが、
8
8
 
@@ -10,6 +10,12 @@
10
10
 
11
11
  ググって出てきたものは全て試してみましたが、解決していない状況です。
12
12
 
13
+ ### 実現したいこと
14
+
15
+ * User内でHashApiTokensの参照
16
+
17
+ * コントローラー内でHashApiTokensを用いたトークンの発行
18
+
13
19
 
14
20
 
15
21
  ### 環境
@@ -330,7 +336,7 @@
330
336
 
331
337
  * composer require laravel/sanctum
332
338
 
333
- * php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
339
+ * php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
334
340
 
335
341
  * composer dump-autoload
336
342