質問: twitterのapiを使用するときにで出てくる call back urlとinstagramのapiを使う時に出てくるリダイレクトurlについて教えて頂けないでしょうか? call back urlについては調べたら少し情報が出てきました。 apiを用いてログインした後にユーザをcall back urlのページに誘導すると書いてありました。 1:2つは同じ意味でしょうか? 2:これらはなぜ必要なのでしょうか? 詳しい方教えて頂けると幸いです。
回答: 具体的にどのようなAPIなのかは調べていないですが、ユーザ認証やAPI利用に関する認可に関する手続きで出てくるRedirect URL(URI)やCallback URL(URI)についての質問だと思いますので、その前提で答えます。 > > 1. 2つは同じ意味でしょうか? > > > 同じ意味です。 > > 2. これらはなぜ必要なのでしょうか? > > > どちらも「TwitterやInstagramのDomainから、ユーザ認証結果やAPIを利用したいアプリ/サービスのDomainに制御を戻すために必要となります。 アプリ/サービスがユーザ認証結果やAPIを利用したい場合、Twitter内やInstagram内のどのユーザがアクセスしてきたのかをまずは特定する(これをユーザ認証と呼ぶ)必要があります。その特定のために、例えばメールアドレスやパスワードといった「第3者に知られたくない情報(ユーザクレデンシャルと呼びます)」をユーザに入力させる必要があります。この際に、ユーザクレデンシャルをアプリ/サービスにて入力させてしまっては、第3者に知られたくない情報なのに、その第3者に相当するアプリ/サービスの開発者や運営者に知られてしまいます。これは良くありません。 ではどうしたら良いかというと、アプリ/サービスから、ユーザ認証を行うことに問題のないTwitterやInstagramのDomainにユーザを誘導し、TwitterやInstagramのDomain内でユーザクレデンシャルをユーザに入力してもらいます。これにより、アプリ/サービスの開発者/運営者は、ユーザクレデンシャルを知ることができなくなります。TwitterやInstagramは、ユーザクレデンシャルからユーザを特定し、アプリ/サービスが要求してきたことを行わせて良いかどうかそのユーザに同意を取ります(これを認可と呼ぶ)。そして、その証明として、認可コードやアクセストークンなどの識別子を発行します。 制御はこの時点ではTwitter/Instagramにありますので、ユーザを元のアプリ/サービスに戻さなければなりません。それと同時に、認可コードやアクセストークンをそのアプリ/サービスに渡さなければなりません。そこで、Twitter/Instagramがアプリ/サービスに制御を戻すために、Redirect URL(URI)やCallback URL(URI)が使われます。つまり、Redirect URL(URI)やCallback URL(URI)が指し示す場所は、一般的にはそのアプリ/サービスのDomainです。 これらの結果、ユーザとしては、誰にもバレたくないユーザクレデンシャルをアプリ/サービスの開発者/運営者に知られずに、でもアプリ/サービスからはそのユーザが同意した権限の範囲内で、そのユーザに代わってTwitter/InstagramのAPIなどを利用することができるようになる、という流れとなります。