角度 laravel 未经授权的 401 错误
Posted
技术标签:
【中文标题】角度 laravel 未经授权的 401 错误【英文标题】:angular laravel unauthorized 401 error 【发布时间】:2019-01-12 02:00:54 【问题描述】:好吧,我不知道我做错了什么,但我真的尝试了一切。 在 agular 中,我只是发送用户数据来注册
signUp(userData: LoginData)
return this.http.post(`$this.rootPathapi/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 为空,但我认为这不是问题...
【问题讨论】:
你是否在 Laravel 端获取请求数据? 您可以粘贴您的路线定义吗?确保您的路由不在 api 路由文件中,因为您无法在这些路由上设置会话数据。如果是,请尝试将路由移至网络路由文件。 但是我使用 laravel 作为 api 的角度,所以我认为路由应该是 api... 我尝试查看凭据的价值,它们绝对没问题,所以现在我比以前更加困惑。一切似乎都很好,但它不起作用...... 我还看到我在数据库中的密码没有加密(它们是用户在登录时写的)这可能是个问题吗? 【参考方案1】:我想添加一些信息,以防它对其他人有用。我已经解决了与此相关的问题。 我在 Angular 7 和 Laravel 5.7 作为 API REST 工作。在 Angular 中,我创建了一个拦截器,以便“自动”添加标题。 然后,我为私有路由创建了 API,也遇到了上述这些问题。 POSTMAN 和 Advanced REST 运行良好,问题出在 Angular 的请求上。 现在,我在每个 HTTP 请求中手动添加了标头,如下所示;
//'GET'请求示例
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';
希望对你有帮助!
【讨论】:
以上是关于角度 laravel 未经授权的 401 错误的主要内容,如果未能解决你的问题,请参考以下文章
不断收到 401 未经授权的“无效凭据”Laravel Passport
401 未经授权使用带有 Laravel Passport 的不记名令牌