好的,我不知道自己在做什么错,但是我真的尽了一切。 在敏捷中,我只是发送用户数据进行注册
signUp(userData: LoginData) {
return this.http.post(`${this.rootPath}api/signup`, userData);
}
在后端
public function login()
{
$credentials = request(['email', 'password']);
if (! $token = auth()->attempt($credentials)) {
return response()->json(['error' => 'Email or password doesn\'t exist'],
401);
}
return $this->respondWithToken($token);
}
public function signup(signUp $request)
{
User::create($request->all());
return $this->login();
}
注册
public function authorize()
{
return true;
}
public function rules()
{
return [
'name' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required'
];
}
它将新用户添加到数据库,但是我总是会收到401错误,该错误表示用户未被授权。很奇怪,我无法理解我在做什么错... 字段REMEMBER_TOKEN为空,但我认为这不是问题...
答案 0 :(得分:0)
我想添加信息,以防其他人使用。我已经解决了与此有关的问题。 我正在使用Angular 7和Laravel 5.7作为API REST。在angular中,我创建了一个拦截器,以便“自动”添加标题。 然后,我为专用路由创建了API,并且还遇到了上述这些问题。 POSTMAN和Advanced REST运作良好,问题出在Angular的要求。 现在,我已经在每个HTTP请求中手动添加了标头,如下所示;
//“获取”请求的示例
userLogOut(): Observable<any[]> {
let parameters = new HttpHeaders();
parameters = parameters.set('Authorization', "Bearer " + this.session.getToken());
return this.http.get<any[]>(this.usersUrl + 'logout', { headers: parameters });
}
//“ POST”请求示例
userLogOut(): Observable<any[]> {
let parameters = new HttpHeaders();
parameters = parameters.set('Authorization', "Bearer " + this.session.getToken() );
return this.http.post<any[]>(this.usersUrl + 'logout', '', { headers: parameters } );
}
他们两个都运作良好。 不要忘记在您的构造函数中添加它
private http: HttpClient
和
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
希望有帮助!