반응형
가져 오기 오기를 기본 인증?
fetch로 간단한 기본 인증을 작성하고 싶지만 401 오류가 계속 발생합니다. 누군가가 코드에 문제가 말하면 멋질 것입니다.
let base64 = require('base-64');
let url = 'http://eu.httpbin.org/basic-auth/user/passwd';
let username = 'user';
let password = 'passwd';
let headers = new Headers();
//headers.append('Content-Type', 'text/json');
headers.append('Authorization', 'Basic ' + base64.encode(username + ":" + password));
fetch(url, {method:'GET',
headers: headers,
//credentials: 'user:passwd'
})
.then(response => response.json())
.then(json => console.log(json));
//.done();
function parseJSON(response) {
return response.json()
}
Basic
와 인코딩 된 사용자 이름 및 비밀번호 사이 에 공백이 없습니다 .
headers.set('Authorization', 'Basic ' + base64.encode(username + ":" + password));
기술이없는 솔루션.
headers.set('Authorization', 'Basic ' + Buffer.from(username + ":" + password).toString('base64'));
base64.encode () 대신 btoa 를 사용할 수도 있습니다 .
headers.set('Authorization', 'Basic ' + btoa(username + ":" + password));
앱 이전에 기본 인증 자격 증명을 요청하는 백엔드 서버가있는 경우 이것으로 충분합니다. 그러면 다음을 다시 사용합니다.
fetch(url, {
credentials: 'include',
}).then(...);
기본 인증 헤더 양식 데이터 요청 본문이있는 코드를 공유하겠습니다.
let username = 'test-name';
let password = 'EbQZB37gbS2yEsfs';
let formdata = new FormData();
let headers = new Headers();
formdata.append('grant_type','password');
formdata.append('username','testname');
formdata.append('password','qawsedrf');
headers.append('Authorization', 'Basic ' + base64.encode(username + ":" + password));
fetch('https://www.example.com/token.php', {
method: 'POST',
headers: headers,
body: formdata
}).then((response) => response.json())
.then((responseJson) => {
console.log(responseJson);
this.setState({
data: responseJson
})
})
.catch((error) => {
console.error(error);
});
노드 사용자 (반응, 명시 적) 다음 단계를 수행하십시오.
npm install base-64 --save
import { encode } from "base-64";
const response = await fetch(URL, { method: 'post', headers: new Headers({ 'Authorization': 'Basic ' + encode(username + ":" + password), 'Content-Type': 'application/json' }), body: JSON.stringify({ "PassengerMobile": "xxxxxxxxxxxx", "Password": "xxxxxxx" }) }); const posts = await response.json();
이 전체 기능을 다음과 같이 정의하는 것을 잊지 않습니다.
async
참고 URL : https://stackoverflow.com/questions/43842793/basic-authentication-with-fetch
반응형
'ProgramingTip' 카테고리의 다른 글
SQL Server에서 datetime과 날짜 만 비교하는 방법 (0) | 2020.11.01 |
---|---|
Asp.Net WebApi2 AspNet.WebApi.Cors 5.2.3에서 작동하지 않는 CORS 활성화 (0) | 2020.11.01 |
SQL 만 사용하여 SQL Server 2005 이미지 필드에 그림 삽입 (0) | 2020.11.01 |
http를 통해 파일에 대한 직접 액세스를 차단하지만 PHP 펼쳐 액세스는 허용 (0) | 2020.11.01 |
ObservableCollection <> 대 목록 <> (0) | 2020.11.01 |