角度laravel未经授权的401错误

时间:2018-08-04 11:24:49

标签: angular laravel jwt

好的,我不知道自己在做什么错,但是我真的尽了一切。 在敏捷中,我只是发送用户数据进行注册

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为空,但我认为这不是问题...

1 个答案:

答案 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';

希望有帮助!