Tôi đang xây dựng một SPA với AngularJS với giao tiếp với một dịch vụ (JAVA).AngularJS - Xử lý mã thông báo làm mới?
Khi người dùng gửi tên người dùng/thẻ, dịch vụ gửi trả lại cả hai: Mã thông báo Acces và Mã thông báo làm mới. Tôi đang cố gắng xử lý: nếu tôi nhận được phản hồi với trạng thái 401, hãy gửi lại mã thông báo làm mới và sau đó gửi lại yêu cầu cuối cùng của bạn. Tôi đã cố gắng làm điều đó với việc bao gồm $ http, nhưng góc cạnh không cho phép tôi đưa nó vào trong máy đánh chặn này. Có cách nào để tạo lại yêu cầu ban đầu với thông số phản hồi này mà tôi nhận được không?
Cái gì như:
- tôi nhận được 401
- lưu yêu cầu của tôi
- nếu tôi có làm mới gửi token làm mới thẻ
- trên thành công gửi lại yêu cầu
tôi trên chuyển hướng lỗi đến/đăng nhập trang
'use strict'; angular.module('testApp') .factory('authentificationFactory', function($rootScope, $q, $window, $location, CONF) { return { request: function(config) { config.headers = config.headers || {}; if ($window.sessionStorage.token) { config.headers.Authorization = 'Bearer ' + $window.sessionStorage.token; } console.log(config); $rootScope.lastRequest = config; return config; }, response: function(response) { console.log($rootScope.lastRequest); if (response.status === 401) { if ($window.sessionStorage.refreshToken) { //Save, request new token, send old response //if it fails, go to login $location.url('/login'); } else { $location.url('/login'); } } return response || $q.when(response); } }; });
Câu hỏi thưởng (câu hỏi chính quan trọng hơn): Có 2 ứng dụng dành cho thiết bị di động cũng sẽ kết nối với dịch vụ của tôi và khi tôi đăng nhập từ ứng dụng web của mình. lấy mã thông báo làm mới mới và mã thông báo làm mới của ứng dụng web của tôi không còn hợp lệ nữa. Điều gì sẽ là lựa chọn tốt nhất để đối phó với điều đó?
Cảm ơn bạn đã dành thời gian, Trân trọng
Hi @dyslexisDcuk, bạn có bất kỳ thành công nào trên đó, vui lòng chia sẻ với tôi. Cảm ơn –