在AngularJS中并使用Chrome高级REST客户端我试图使用基于ASP.Net MVC 5 SPA Visual Studio 2015模板的项目中的“密码”grant_type来获取令牌。该项目是全新的,完全没有任何修改。
使用此URL调用端点: http://localhost:55472/Token
[Headers]
Content-Type: application/x-www-form-urlencoded
Accept: application/json
[Encoded Payload]
Data:=grant_type%3Dpassword%26username%3Db%40c.d%26password%3DPass123--%26client_id%3Dweb
结果如下:
400 Bad Request
{"error":"invalid_client"}
未配置外部登录,用户使用模板应用程序注册。
我尝试了不同的方法来构建这样的有效负载,并得到了相同的结果:
[Encoded Payload]
grant_type=password&username=b%40c.d&password=Pass123--&client_id=web
因此,可能是客户端未正确调用端点:
var _tokenPath = '/Token';
var data = 'grant_type=password&username=b@c.d&password=Pass123--&client_id=web;
$http.post(_tokenPath, data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).then(
function (response) {
debugger;
console.log(response);
},
function (error) {
debugger;
console.log(error);
}
)
或者在Startup.Auth.cs文件中有一些不正确的东西会阻止端点正常工作。
我们如何让/ Token网址在MVC5的SPA模板上开箱即用? 谢谢你的帮助!