trong Ứng dụng của tôi (Góc 2/Ionic 2) Tôi đã thực hiện đăng nhập/xác thực của riêng mình. Về cơ bản nó hoạt động như thế này: Khi đăng nhập, tên người dùng và mật khẩu đang được xác nhận bởi chương trình phụ trợ PHP. Một mã thông báo được tạo, được gửi trở lại sau đó giao diện người dùng trong tiêu đề (Cấp quyền). Phản hồi từ chương trình phụ trợ trông giống như sau:Góc 2: Nhận tiêu đề ủy quyền
HTTP/1.1 200 OK
Host: localhost:8080
Connection: close
X-Powered-By: PHP/5.6.28
Set-Cookie: PHPSESSID=jagagi2le1b8i7r90esr4vmeo6; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: application/json
Authorization: d7b24a1643a61706975213306446aa4e4157d167eaad9aac989067a329c492d3
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-Requested-With, Content-Type, Accept, Origin, Authorization
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Content-Length: 301
Rõ ràng là tiêu đề Cấp phép có mã thông báo. CORS dường như cũng được thiết lập chính xác, vì tôi thấy Ủy quyền trong tiêu đề Cho phép-Tiêu đề.
Tuy nhiên, khi tôi cố gắng để có được những tiêu đề trong góc 2, nó luôn luôn trả về null:
private extractDataAndSetAuthHeader(res: Response) {
// Set auth header if available.
// If not available - user is not logged in. Then
// we also have to remove the token from localStorage
if(res.headers.has("Authorization"))
{
let token = res.headers.get("Authorization");
this.setToken(token);
}
else
{
// If no token is sent, remove it
this.removeToken();
}
let body = res.json();
return body.data || { };
}
Dòng đầu tiên của phương pháp này mang lại cho trở lại sai. Ngoài ra, khi tôi kiểm tra đối tượng tiêu đề trong phản hồi của tôi, nó chỉ hiển thị cho tôi những công cụ sau (công cụ Chrome dev):
[[Entries]]:
Array[4]
0:{"pragma" => Array[1]}
1:{"content-type" => Array[1]}
2:{"cache-control" => Array[1]}
3:{"expires" => Array[1]}
Không có tiêu đề ủy quyền có trong đối tượng đó.
Có ai vui lòng giúp tôi không?
Cảm ơn trước :)
'Ủy quyền' thường được sử dụng làm tiêu đề yêu cầu, không phải là r esponse. Tại sao bạn không trả lại mã thông báo truy cập trong nội dung phản hồi? –
Bởi vì theo như tôi biết đó là những gì 'Authorization' tiêu đề là cho. Ở mỗi yêu cầu (khi người dùng đăng nhập), tôi sẽ gửi tiêu đề Cấp quyền trong yêu cầu, kiểm tra xem mã thông báo vẫn hợp lệ, sau đó, để bảo mật hơn, tạo lại mã thông báo và gửi lại giao diện người dùng bằng ' Tiêu đề ủy quyền'. Tôi có thiếu gì đó không? – dave0688
http://stackoverflow.com/q/42306684/2587435 –