Ứng dụng AngularJS của tôi cần có quyền truy cập vào hồ sơ LinkedIn của người dùng. Để thực hiện điều đó, tôi cần chuyển hướng người dùng đến URL LinkedIn có chứa tham số redirect_uri gọi lại để thông báo cho LinkedIn chuyển hướng người dùng trở lại ứng dụng web của tôi và bao gồm thông số truy vấn "mã" trong URL. Đó là dòng chảy Oauth 2.0 truyền thống.
Mọi thứ hoạt động tuyệt vời ngoại trừ việc LinkedIn chuyển hướng người dùng quay lại URL sau:
http://localhost:8080/?code=XXX&state=YYY#/users/123/providers/LinkedIn/social-sites
Tôi muốn xóa ?code=XXX&state=YYY
khỏi URL để làm cho nó sạch sẽ. Người dùng không cần phải xem các tham số truy vấn tôi nhận được từ chuyển hướng LinkedIn.
Tôi đã thử $location.absUrl($location.path() + $location.hash()).replace()
, nhưng nó giữ các thông số truy vấn trong URL.
Tôi cũng không thể trích xuất các tham số truy vấn, ví dụ: "mã", bằng cách sử dụng ($location.search()).code
. Có vẻ như có? trước # trong URL ở trên là đánh lừa Angular.