2013年3月26日火曜日

SFDC OAuth2 で勘違いしてた

今まで FDC の OAuth2 で Authorization Code を取得するところで
一処理余分なことをやってたっぽい。以下のような感じ。

  1. クライアントが SP(https://login.salesforce.com/services/oauth2/authorize)
    に POST で以下の内容を送る。
    response_type=code&client_id=<clientid>&client_secret=<secret>&redirect_uri=https://example.com/hoge
  2. するとクライアントは以下のリダイレクト用 URL を受け
    取るので、これをLocationヘッダとしてユーザに送り返す。

    https://login.salesforce.com/setup/secur/RemoteAccessAuthorizationPage.apexp?source=xxxxxxxxxxxxxxxxxxxxx
  3. ユーザのブラウザはこれを受け取り SP にリダイレクトする。
    するとユーザがログインしていない場合はログイン画面が表示
    されログイン処理を行い、その後は自動的にクライアントにリ
    ダイレクト。この際 GET パラメータには Authorization code
    が含まれている。
  4. クライアントは受け取った Authorization code を SP に送信
    して Access Token を取得。
と思ってたんだけど、どうも 1 の部分の SP とのやりとりは不要で
2 から始められるようだ。この際の Location ヘッダにセットする
URL は以下のような感じで client_secret は不要。


https://login.salesforce.com/services/oauth2/authorize?response_type=code&client_id=
3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA
9GE&redirect_uri=https%3A%2F%2Fwww.mysite.com%2Fcode_callback.jsp&state=mystate

1と同じ response_type=code というパラメータを渡してる。

まぁ、勘違いというわけでもなく今まで覚えていた方法でも良いの
だろうが、どこからこの情報を得たのかがもうわからなくなってい
て、、、うーーんという感じ。




0 件のコメント:

コメントを投稿