Authorization Code Grant
OAuthサーバーからトークンを取得するアプローチの例があります。jQuery($
)を使用していくつかの操作を行いました。
まず、ユーザーを認証ページにリダイレクトします。
var authServerUri = "http://your-aouth2-server.com/authorize",
authParams = {
response_type: "code",
client_id: this.model.get("clientId"),
redirect_uri: this.model.get("redirectUri"),
scope: this.model.get("scope"),
state: this.model.get("state")
};
// Redirect to Authorization page.
var replacementUri = authServerUri + "?" + $.param(authParams);
window.location.replace(replacementUri);
トークンを取得するための認証パスを与えたとき:
var searchQueryString = window.location.search;
if ( searchQueryString.charAt(0) === "?") {
searchQueryString = searchQueryString.substring(1);
}
var searchParameters = $.deparam.fragment(searchQueryString);
if ( "code" in searchParameters) {
// TODO: construct a call like in previous step using $.ajax() to get token.
}
jQueryまたは純粋なXMLHttpRequestを使用して同じ方法で実装できResource Owner Password Credentials Grant
、リダイレクトを行わないでください。リダイレクトするたびに、アプリケーションの状態が失われるためです。
私の場合、HTML5ローカルストレージを使用して、セキュリティ上の脅威をもたらす可能性が低いデータのアプリケーションの状態を永続化しました。