質問編集履歴

2

タグの追加と追記

2016/09/22 05:44

投稿

twin_bird
twin_bird

スコア230

test CHANGED
File without changes
test CHANGED
@@ -26,4 +26,56 @@
26
26
 
27
27
 
28
28
 
29
+ ### 追記
30
+
31
+
32
+
29
33
  追記: バックにはLaravel、フロントはReactを使っています。自作APIを利用するときは、基本的にはReactでAPIを叩いています。
34
+
35
+
36
+
37
+ 追記: 皆様、有益な回答ありがとうございます。ググっても中々実装例が出てこなかったのでとても助かります。ただ、幅広い意見をお伺いしたいので今しばらく回答を募集中のままにさせていただきます。
38
+
39
+
40
+
41
+ ### 改めて質問内容を整理します。
42
+
43
+
44
+
45
+ Laravelでアプリケーションを開発しており(以下、Laravel Appとします。Wantedlyのようなサービスです。)、「**Laravel App内で使用すること**」と「**外部のクライアントに利用してもらうこと**(外部クライアントが開発している別のアプリケーション等に利用してもらう、など)」を目的としたAPIを作っています。
46
+
47
+
48
+
49
+ このAPIを利用するには、ヘッダにLaravel Appが発行するユーザー(Laravel Appの利用者かつ登録者)それぞれが保持するAPI Tokenを含めてPOSTすることでLaravel APPのミドルウェアが認証処理を行い、レスポンスを返してくれます。
50
+
51
+
52
+
53
+ 外部のクラアイントがAPIを利用する分には、このAPI Tokenでの認証方法で良いと思います。(回答者の方のご指摘通り、Tokenのチェック方法に留意する点はまだありますが・・)
54
+
55
+
56
+
57
+ しかし、この認証方法を設けてしまうと、Laravel App自身がAPIを使用することが難しくなってしまいます。
58
+
59
+ 例えば、Laravel Appが自身がAPIを利用するためのアドミン用のAPI Tokenを用意しても、ヘッダ情報にAPI Tokenを含める必要があるため、Larave Appを利用する全てのユーザーにアドミン用のAPI Tokenが公開されてしまいます。
60
+
61
+
62
+
63
+
64
+
65
+ 上記の利用目的において、APIの認証方法はどのようにすべきでしょうか?
66
+
67
+
68
+
69
+
70
+
71
+ ### 考えている方法
72
+
73
+
74
+
75
+ * 公開用と内部で使用する用でAPIを分ける。内部で使用する用は非公開にする。
76
+
77
+
78
+
79
+ * アドミン用のAPI Tokenを利用せず、ユーザー(Laravel Appの利用者かつ登録者)のAPI Tokenを利用させる。本来、API Tokenは外部の別のアプリケーションの開発等に使用してもらうためのものを想定していたが、Laravel Appを利用する際も使用する仕様にする。
80
+
81
+ API TokenはLaravel Appに登録した時に自動で発行、いつでもリフレッシュ可能なものとする。

1

追記

2016/09/22 05:44

投稿

twin_bird
twin_bird

スコア230

test CHANGED
File without changes
test CHANGED
@@ -23,3 +23,7 @@
23
23
 
24
24
 
25
25
  公開用とアドミン用のAPIを別に作成する必要があるのでしょうか??
26
+
27
+
28
+
29
+ 追記: バックにはLaravel、フロントはReactを使っています。自作APIを利用するときは、基本的にはReactでAPIを叩いています。