Lỗi xác thực sau khi đăng nhập

  • 402 lượt xem
  • Bài cuối 23 Tháng Năm 2020
Tùng Hà Xuân đăng này 28 Tháng Mười Hai 2016

Sau khi đăng nhập thành công thì các hàm trong apiService không lấy được dữ liệu do Unauthorize mặc dù trước đó e đều gọi hàm authenticationService.setHeader();

Mọi người giúp em với ạ

Sắp xếp theo: Chuẩn | Mới nhất | Bình chọn
admin đăng này 28 Tháng Mười Hai 2016

Em kiểm tra xem lúc call api nó có set dc header là cái Bearer token lên không

TEDU

Tùng Hà Xuân đăng này 28 Tháng Mười Hai 2016

this.setHeader = function () {

                delete $http.defaults.headers.common['X-Requested-With'];

                if ((tokenInfo != undefined) && (tokenInfo.accessToken != undefined) && (tokenInfo.accessToken != null) && (tokenInfo.accessToken != "")) {

                    $http.defaults.headers.common['Authorization'] = 'Bearer ' + tokenInfo.accessToken;

                    $http.defaults.headers.common['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';

                }

            }

phần này n k nhảy vào trong if ạ

Tùng Hà Xuân đăng này 28 Tháng Mười Hai 2016

  1. Có username đây ạ nhưng vẫn undefined
  2. accessToken:undefined
  3. userName:"kynh"
  4. __proto__:Object

Tùng Hà Xuân đăng này 28 Tháng Mười Hai 2016

Lúc trước e có sửa cái lỗi này nên fix lại cho chuẩn cú pháp của $http.post theo trên mạng ạ. K biết có phải nguyên nhân k?

TypeError: $http.post(...).success is not a function

    at Object.login (loginService.js:14)

    at ChildScope.$scope.loginSubmit (loginController.js:11)

    at fn (eval at compile (angular.js:15156), <anonymous>:4:153)

    at callback (angular.js:26744)

    at ChildScope.$eval (angular.js:17972)

    at ChildScope.$apply (angular.js:18072)

    at HTMLFormElement.<anonymous> (angular.js:26749)

    at HTMLFormElement.dispatch (jquery.js:4737)

    at HTMLFormElement.elemData.handle (jquery.js:4549)

Tùng Hà Xuân đăng này 28 Tháng Mười Hai 2016

Em sửa bằng cách bỏ .success thay bằng .then ạ, xong nhét hàm bên trong then

Tùng Hà Xuân đăng này 28 Tháng Mười Hai 2016

Fix xong rồi ạ. Nếu sửa như trên  thì trong loginService phải sửa như sau:

userInfo = {

                    accessToken: response.data.access_token,

                    userName: userName

                };

thay vì 

userInfo = {

                    accessToken: response.access_token,

                    userName: userName

                };

Trần Ngọc Quân đăng này 28 Tháng Mười Hai 2016

cái success is not a function là do angularjs nó khai tử hai hàm .success() với .error() rồi

 

https://code.angularjs.org/1.5.10/docs/api/ng/service/$http#deprecation-notice

Tùng Hà Xuân đăng này 28 Tháng Mười Hai 2016

Dạ vâng. Đã fix xong rồi ạ. Sửa lại như sau:

$http.post('/oauth/token', data, {

                headers:

                   { 'Content-Type': 'application/x-www-form-urlencoded' }

            }).then(function (response) {

                userInfo = {

                    accessToken: response.data.access_token,

                    userName: userName

                };

                authenticationService.setTokenInfo(userInfo);

                authData.authenticationData.IsAuthenticated = true;

                authData.authenticationData.userName = userName;

                deferred.resolve(null);

            }, function (err, status) {

                authData.authenticationData.IsAuthenticated = false;

                authData.authenticationData.userName = "";

                deferred.resolve(err);

            });

Xuân Thái Trần đăng này 02 Tháng Giêng 2017

sao mình sửa giống bạn rồi mà sao không đc nhỉ

admin đăng này 03 Tháng Giêng 2017

E xem login nó đã lấy đc token ra chưa và lúc query thì token đấy có được gán vào header của request ko

TEDU

Lê Cảnh Phong đăng này 23 Tháng Ba 2017

e làm như bạn nhưng token nó vẫn chưa gán qua

vine Jade đăng này 26 Tháng Chín 2017

admin ơi em cũng bị lỗi này..sữa lại như bạn xuân cũng hem được

 

vine Jade đăng này 26 Tháng Chín 2017

về lại angularJS 1.5.5 đi bạn....

Mắm ARMY đăng này 19 Tháng Tư 2020

Em bị lỗi khi thử get all products thì nó lại trả vể lỗi này ạ !Anh chị nào biết không ạ ! 

admin đăng này 14 Tháng Năm 2020

chắc là em chưa truyền đúng token lên

TEDU

hocon84 đăng này 23 Tháng Năm 2020

Hàm response.writeHead dùng để thiết lập các tham số của header khi gửi kết quả về cho client

Sinh Viên

Close