前提・実現したいこと
あるwebサービスを作りました。読んだ本を登録して、会員内で公開、共有するサービスです(勉強用です)
ログイン機能はmake:authで作成済みです。CRUD機能はリソースコントローラー使用しました。
この登録した本の情報を会員のみがAPI通信で使えるようにしたいのですがやり方がわかりません。
試したこと
Laravel Passportをインストールしてみました。
手探り状態です。
備考
初心者でして、api通信に対する知識も不足しております。
やり方もそうですが、参考サイトなどもありましたら教えていただければ幸いです。
「API通信」をどのような意味で使われているのでしょうか
このwebサービスをwebAPIとしても使用できるようにしたいです。
つまり、APIとして実行されるとき「会員である」ことがわかればいいんですよね?
パラメータ(できればPOSTで)による認証をAPIの受け口にかませばいいと思いますが、どのように作ろうとしているのでしょうか?
>APIとして実行されるとき「会員である」ことがわかればいいんですよね?
その通りです。
手探り状態なので恐縮なのですが
laravelのroute/api.phpにAPI通信専用のルーティングを設定し、api通信があった時に
「会員であること」がわかるようなミドルウエアを使った認証をかけたらいいのかな?
と思っていました。
的外れでしょうか?お手すきの時にお返事いただければと思います
「API通信があった」というのを認識するのはほぼ無理です。
システムはリクエストを受け付けリクエストにそった処理をしレスポンスを返すだけです。
もちろん「リクエスト送信もとが ○○だったら」の判定を入れれば可能かと思いますが、ホワイトリストもしくはブラックリストのいずれかになります。「API通信」をどこまで想定しているかで作りは違ってきます。
例えばTwitterAPIやGoogleAPIなどのように外部からのリクエストを受け付けるかどうかとか。要件次第ですね。
「会員内で公開」となると、結局は認証が必要となりますので、APIとして提供する機能の冒頭でリクエストによる認証を挟む形になります。
つまり、内部のみで使おうと外部で公開しようと流れはフォーム送信を受け付けて処理を流すのと同じです。
なんとなく仕組みというか、理屈がわかったような気がします…
>リクエストにそった処理をしレスポンスを返すだけです。
自分としてはこれができればいいと考えておりました
>流れはフォーム送信を受け付けて処理を流すのと同じ
ということは、普通のwebサービス同様のログインをした後で、APIに関するいろんな処理をするということでしょうか?
ログイン情報もPOSTで渡します。
cURLなど調べてください。
「レスポンスヘッダーが渡されるという意味で同じ」という意味です。
おそらくそのあたりをきちんと抑えておかないと次の展開には進めません。
(LaravelやPHPというよりレイヤーが上のhttpの仕組みです。)
あなたの回答
tips
プレビュー