2017-12-05 4 views
0

반응하는 네이티브 앱에 대한 로그인 화면을 만들려고하지만 웹 API에서 인증 토큰을 가져올 수 없습니다.React Native - asp.net 웹 api에서 토큰을 가져올 수 없습니다.

우편 배달부와 시도해 볼 수 있으며 토큰을 얻을 수 있습니다.

나는 게시를 위해 api와 adios를 가져 왔지만 성공하지 못했습니다.

이 내 코드를 페치

fetch("https://ahmetkocadogan.a2hosted.com/token", { 
    method: "POST", 
    headers: { 
     Accept: "application/json", 
     "Content-Type": "application/x-www-form-urlencoded", 
    }, 
    body: JSON.stringify({ 
     grant_type: "password", 
     deviceId: "ahmet", 
     username: "ahmet", 
     password: "123456", 
    }) 
    }).then(response => {console.log(response);}) 
    .catch(error => { 
     console.log(error); 
    }); 
    } 

내 API 토큰 URL은 다음과 같습니다 https://ahmetkocadogan.a2hosted.com/token

우편 배달부에서, 내가 동의로 헤더 추가 - 응용 프로그램/JSON, 콘텐츠 형식 - 응용 프로그램/x를 - www가 있습니다.

과 몸 form.urlencoded : - 비밀번호, 이름 - 아멧, 비밀 번호 - 123456,의 DeviceID - grant_type 아멧

을 그리고 난 후로부터 토큰을 얻을 남자.

아이디어가 있으십니까? 가져 오기 코드에 어떤 문제가 있습니까?

답변

0

나는 네이티브 반응에서 가져 오기를 사용하여 그것을 해결하고 내 요청 헤더 생성을 변경했습니다.

var headers = { 
    'Accept': 'application/json', 
    'Content-Type': 'application/x-www-form-urlencoded' 
    } 
    var details = { 
    'username': 'ahmet', 
    'password': password, 
    'grant_type': 'password', 
    'deviceId': 'ahmet' 
    }; 
    var formBody = []; 
    for (var property in details) { 
    var encodedKey = encodeURIComponent(property); 
    var encodedValue = encodeURIComponent(details[property]); 
    formBody.push(encodedKey + "=" + encodedValue); 
    } 
    formBody = formBody.join("&"); 
    console.log('fetch baslıyor'); 
    let result = await fetch(API_ROOT_URL + '/token', { 
    method: 'POST', 
    headers: { 
     'Accept': 'application/json', 
     'Content-Type': 'application/x-www-form-urlencoded' 
    }, 
    body: formBody 
    }); 
    let resultJson = await result.json(); 

이제 작동합니다.

관련 문제