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.
}
您可以Resource Owner Password Credentials Grant
使用 jQuery 或纯 XMLHttpRequest 以相同的方式实现,并且不进行任何重定向 - 因为在每次重定向时,您都会失去应用程序的状态。
对我来说,我使用 HTML5 本地存储来保存不太可能构成安全威胁的数据的应用程序状态。