在angularjs中发出OAuth2请求

Posted

技术标签:

【中文标题】在angularjs中发出OAuth2请求【英文标题】:Making OAuth2 request in angularjs 【发布时间】:2017-06-22 03:27:22 【问题描述】:

我正在尝试在 angularjs 中发出请求以检索访问令牌,但我不是 100% 确定如何去做。这是 curl 中的请求

curl -X POST -d “grant_type=密码&用户名=&密码=&范围=读取” -u":" http://localhost:8000/o/token/

感谢所有帮助

【问题讨论】:

【参考方案1】:

我认为您需要使用查询字符串参数发布

为此,您需要在您的发布请求中进行一些修改

var request = $http(
                    method: "POST",
                    url: "",
                    transformRequest: transformRequestAsFormPost,
                    data: 
                        grant_type: "password",
                        username: "Kim",
                        password: "123",
                        scope: "read"
                    
                );

这里有更详细的解释https://www.bennadel.com/blog/2615-posting-form-data-with-http-in-angularjs.htm

【讨论】:

【参考方案2】:

我想通了

var data = "grant_type=password" + "&username="+cred.username + "&password="+cred.password +
            "&client_id=" + cred.client_id +
            "&client_secret=" + cred.client_secret;
       $http(
           method: 'POST',
           url: 'BaseUrl',
           data: data,
           headers: 'Content-Type': 'application/x-www-form-urlencoded'

       )

【讨论】:

以上是关于在angularjs中发出OAuth2请求的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS - HTTP 请求在控制器中发出预检请求,但不在 app.js 中

Laravel OAuth2 Passport API,生成令牌但无法发出请求:“未经身份验证”

Nodejs中的护照OAuth2Strategy是不是对访问令牌发出自动POST请求

AngularJs 获得授权请求

AngularJS,谷歌浏览器阻止我的应用程序发出发布请求,需要帮助添加标题[重复]

如何从在不同端口上运行的本地 AngularJS 应用程序向本地 Rails 应用程序发出请求?