无法从角度脚本获取访问令牌

时间:2016-04-06 22:55:25

标签: java angularjs rest oauth-2.0 client

我正在尝试获取一些访问令牌以消耗远程应用程序中托管的一些其他api,当我从curl代理和Open HttpRequester等一些插件发送请求时,我成功获得了令牌,并且我成功地使用了其余的API。

但是当我尝试从角度脚本函数请求令牌时,我收到401未经授权的消息。

我想在角度js post方法中等效这个curl请求。

curl -X POST -vu clientapp:123456 http://localhost:8080/oauth/token -H  "Accept: application/json" -d "password=spring&username=roy&grant_type=password&scope=read%20write&client_secret=123456&client_id=clientapp".

我不知道在post angular方法中如何包含 clientapp:123456 对。

这是脚本

    var app = angular.module("app", []);
    app.controller("MyController", function($scope, $http) {
        $scope.obtain_token = function() {
            $http({
                method : 'POST',
                url : 'http://clientapp:123456@localhost:8080/oauth/token',
                data: {
                        username:'roy',
                        password: 'spring',
                        client_id: 'clientapp',
                        client_secret: '123456',
                        scope: 'write'
                      },
                transformRequest: function(obj) {
                    var str = [];
                    for (var p in obj)
                        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
                        return str.join("&");
                }}).success(function (data, status, headers, config){
                    alert(data.access_token);
                }).error(function (data, status, headers, config){
                    //alert("Errooooooooor");
                });
        };
    });

我试过你的版本,但它没有用。

1 个答案:

答案 0 :(得分:0)

您可以发布到网址:

http://clientapp:123456@localhost:8080/oauth/token

如果使用HTTP身份验证。