我有一个angular 2登录表单,我正试图通过API调用来调用一个JWT令牌控制器。
我的user.service.ts如下:-
login(username, password) {
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let credentials = JSON.stringify({ username, password });
console.log(username, password);
return this._http.post('http://localhost:5000/api/jwt', credentials, { headers: headers })
.map(res => res.json())
.map((res) => {
if (res.success) {
localStorage.setItem('auth_token', res.auth_token);
this.loggedIn = true;
}
return res.success;
});
}
当我做console.log(用户名,密码);我正在得到正确的用户名和密码输入的表单。
[HttpPost]
[AllowAnonymous]
public async Task<IActionResult> Get(string username, string password)
{
//code here
}
约翰
您设置了一个错误的内容类型头,它必须是JSON:
headers.append('Content-Type', 'application/json');
还要确保创建了一个有效的JSON对象(JSON.stringify({username,password})
无效,并且控制台收到一个javascript错误,表示该对象已中断):
let credentials = JSON.stringify({ username: username, password: password });
最后但并非最不重要的是引入一个视图模型来匹配这个结构:
public class LoginViewModel
{
public string Username { get; set; }
public string Password { get; set; }
}
您的控制器操作将作为参数:
public async Task<IActionResult> Get(LoginViewModel loginModel)
我尝试用angular2前端实现jwt令牌。当我尝试使用Postman接收带有post方法的令牌时,我接收到授权令牌,但在Angular中这样做返回空响应对象。这里是我使用的Angular服务的代码片段。 问题是,当我尝试记录时,令牌是空的,与响应相同。对于代码的后端部分,我遵循了jwt令牌的这个实现。
嗨,我正在创建使用 REST API endpoint与服务器端通信的移动本机应用程序。 我以前有开发本机客户端的经验,但我将简单的令牌(随机生成的字符串)存储在存储用户信息的同一表中的数据库中。所以它就像浏览器中使用的会话,但每个请求的标头中都有令牌,而不是 cookie。 最近我发现了JWT令牌。这似乎是保护私有endpoint的好方法。您可以从移动客户端请求令牌,前提是您通过登录并获得生成的
我有一个关于JWT的SSO流的简单问题 假设我们有单独的授权服务器,它为客户端应用程序/服务器和资源服务器提供JWT,客户端尝试使用该令牌访问该服务器。 问题是,资源服务器应该自己验证令牌(例如,与Auth server共享私有证书),还是应该请求Auth server为每个客户端请求验证JWT?
我想把一个id作为用户的输入,传递给控制器,得到特定id的数据 当我在URL--http://localhost:8080/student/1中手动传递id时,它就起作用了 Whitelabel错误页面此应用程序没有/Error的显式映射,因此您将其视为一种后退。 Wed Jun 19 11:04:22 IST 2019出现意外错误(Type=内部服务器错误,Status=500)。模板分析过程中
我正在使用laravel 5.4开发一个api 尝试使用API控制器登录时 它给我以下错误: {FatalThrowableError调用未定义的方法Illumate\Auth\TokenGuard::attempt()}
我试图将数据传递给controller进行进一步处理,但在controller中得到null,然而js(ajax)的debug无论如何都会显示这个数字。可能是什么问题? Ajax: 控制器: