该隐格兰特流(你指的是作为一个 用户代理流量 )正好是要走的路:
隐式授权是简化的授权代码流程,该流程针对使用脚本语言(例如Javascript)在浏览器中实现的客户端进行了优化。
要了解流程,Google的客户端应用程序文档是一个很好的起点。请注意,他们建议您采取额外的
令牌验证 步骤,以避免混淆的代理问题。
<script type="text/javascript" charset="utf-8"> $(function () { var extractToken = function(hash) { var match = hash.match(/access_token=([w-]+)/); return !!match && match[1]; }; var CLIENT_ID = YOUR_CLIENT_ID; var AUTHORIZATION_ENDPOINT = "https://soundcloud.com/connect"; var RESOURCE_ENDPOINT = "https://api.soundcloud.com/me"; var token = extractToken(document.location.hash); if (token) { $('div.authenticated').show(); $('span.token').text(token); $.ajax({ url: RESOURCE_ENDPOINT , beforeSend: function (xhr) { xhr.setRequestHeader('Authorization', "OAuth " + token); xhr.setRequestHeader('Accept', "application/json"); } , success: function (response) { var container = $('span.user'); if (response) { container.text(response.username); } else { container.text("An error occurred."); } } }); } else { $('div.authenticate').show(); var authUrl = AUTHORIZATION_ENDPOINT + "?response_type=token" + "&client_id=" + clientId + "&redirect_uri=" + window.location; $("a.connect").attr("href", authUrl); } });</script><style> .hidden { display: none; }</style><div > <a href="">Connect</a></div><div > <p> You are using token <span >[no token]</span>. </p> <p> Your SoundCloud username is <span >[no username]</span>. </p></div>要使用AngularJS
发送XMLHttpRequests(该
ajax()函数在jQuery中的功能),请参阅其
$http服务文档。
如果要保留状态,则在将用户发送到授权端点时,请签出该
state参数。



