Sử dụng ID khách hàng và bí mật khách hàng của bạn để nhận mã thông báo xác thực. Bạn sẽ thêm mã thông báo xác thực vào tiêu đề của mỗi yêu cầu API. Ví dụ Python sau đây cho thấy cách lấy mã thông báo xác thực và tạo tiêu đề Ủy quyền bằng cách sử dụng mã thông báo
Tôi sẽ chỉ cho bạn ví dụ về Post Request với Bearer Token Ví dụ trong Python. nếu bạn có câu hỏi về Extract Bearer Token From Header Python thì tôi sẽ đưa ra ví dụ đơn giản với giải pháp. Tôi đã giải thích đơn giản từng bước Python Yêu cầu mã thông báo tiêu đề Bearer. nếu bạn muốn xem ví dụ về Python Get Request Header Bearer Token thì bạn đang ở đúng nơi
Ở đây, chúng tôi sẽ sử dụng thư viện yêu cầu cho tất cả Yêu cầu HTTP POST với mã thông báo mang tiêu đề và nhận phản hồi JSON trong chương trình python. Tôi sẽ cho bạn một ví dụ rất đơn giản để gọi POST Request với các tham số body trong python
Bạn có thể gọi API từ ứng dụng của mình bằng cách chuyển Mã thông báo truy cập trong tiêu đề
#import
NSDictionary *headers = @{ @"authorization": @"Bearer YOUR_ACCESS_TOKEN" };
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"//localhost:3010/api/private"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^[NSData *data, NSURLResponse *response, NSError *error] {
if [error] {
NSLog[@"%@", error];
} else {
NSHTTPURLResponse *httpResponse = [NSHTTPURLResponse *] response;
NSLog[@"%@", httpResponse];
}
}];
[dataTask resume];
0 của yêu cầu HTTP của bạn dưới dạng mã thông báo Bearercurl --request GET \
--url //localhost:3010/api/private \
--header 'authorization: Bearer YOUR_ACCESS_TOKEN'
Là hữu ích không?
Có/Không
var client = new RestClient["//localhost:3010/api/private"];
var request = new RestRequest[Method.GET];
request.AddHeader["authorization", "Bearer YOUR_ACCESS_TOKEN"];
IRestResponse response = client.Execute[request];
Là hữu ích không?
Có/Không
package main
import [
"fmt"
"net/http"
"io/ioutil"
]
func main[] {
url := "//localhost:3010/api/private"
req, _ := http.NewRequest["GET", url, nil]
req.Header.Add["authorization", "Bearer YOUR_ACCESS_TOKEN"]
res, _ := http.DefaultClient.Do[req]
defer res.Body.Close[]
body, _ := ioutil.ReadAll[res.Body]
fmt.Println[res]
fmt.Println[string[body]]
}
Là hữu ích không?
Có/Không
HttpResponse response = Unirest.get["//localhost:3010/api/private"]
.header["authorization", "Bearer YOUR_ACCESS_TOKEN"]
.asString[];
Là hữu ích không?
Có/Không
var axios = require["axios"].default;
var options = {
method: 'GET',
url: '//localhost:3010/api/private',
headers: {authorization: 'Bearer YOUR_ACCESS_TOKEN'}
};
axios.request[options].then[function [response] {
console.log[response.data];
}].catch[function [error] {
console.error[error];
}];
Là hữu ích không?
Có/Không
#import
NSDictionary *headers = @{ @"authorization": @"Bearer YOUR_ACCESS_TOKEN" };
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"//localhost:3010/api/private"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^[NSData *data, NSURLResponse *response, NSError *error] {
if [error] {
NSLog[@"%@", error];
} else {
NSHTTPURLResponse *httpResponse = [NSHTTPURLResponse *] response;
NSLog[@"%@", httpResponse];
}
}];
[dataTask resume];
Là hữu ích không?
Có/Không
$curl = curl_init[];
curl_setopt_array[$curl, [
CURLOPT_PORT => "3010",
CURLOPT_URL => "//localhost:3010/api/private",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"authorization: Bearer YOUR_ACCESS_TOKEN"
],
]];
$response = curl_exec[$curl];
$err = curl_error[$curl];
curl_close[$curl];
if [$err] {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Là hữu ích không?
Có/Không
________số 8
Là hữu ích không?
Có/Không
require 'uri'
require 'net/http'
url = URI["//localhost:3010/api/private"]
http = Net::HTTP.new[url.host, url.port]
request = Net:::Get.new[url]
request["authorization"] = 'Bearer YOUR_ACCESS_TOKEN'
response = http.request[request]
puts response.read_body
Là hữu ích không?
Có/Không
curl --request GET \
--url //localhost:3010/api/private \
--header 'authorization: Bearer YOUR_ACCESS_TOKEN'
0Là hữu ích không?
Có/Không
Nhận mã thông báo truy cập
Nếu bạn đang gọi API từ Ứng dụng một trang hoặc ứng dụng Di động/Gốc, thì sau khi quy trình ủy quyền hoàn tất, bạn sẽ nhận được Mã thông báo truy cập. Cách bạn nhận mã thông báo và cách bạn thực hiện cuộc gọi tới API sẽ phụ thuộc vào loại ứng dụng bạn đang phát triển và khung bạn đang sử dụng. Để biết thêm thông tin, hãy tham khảo phần Khởi động nhanh của ứng dụng liên quan có chứa các hướng dẫn chi tiết
- Ứng dụng một trang
- Ứng dụng dành cho thiết bị di động / bản địa
Nếu bạn đang gọi API từ công cụ dòng lệnh hoặc dịch vụ khác, nơi không có người dùng nhập thông tin đăng nhập của họ, bạn cần sử dụng. Để làm điều đó, hãy đăng ký , sau đó sử dụng ID khách hàng và Bí mật khách hàng của ứng dụng này khi thực hiện yêu cầu bên dưới và chuyển chúng theo các tham số
#import
NSDictionary *headers = @{ @"authorization": @"Bearer YOUR_ACCESS_TOKEN" };
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"//localhost:3010/api/private"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^[NSData *data, NSURLResponse *response, NSError *error] {
if [error] {
NSLog[@"%@", error];
} else {
NSHTTPURLResponse *httpResponse = [NSHTTPURLResponse *] response;
NSLog[@"%@", httpResponse];
}
}];
[dataTask resume];
1 và #import
NSDictionary *headers = @{ @"authorization": @"Bearer YOUR_ACCESS_TOKEN" };
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"//localhost:3010/api/private"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^[NSData *data, NSURLResponse *response, NSError *error] {
if [error] {
NSLog[@"%@", error];
} else {
NSHTTPURLResponse *httpResponse = [NSHTTPURLResponse *] response;
NSLog[@"%@", httpResponse];
}
}];
[dataTask resume];
2 tương ứng. Cũng bao gồm Đối tượng cho API bạn muốn gọiĐọc Cài đặt ứng dụng để biết thêm thông tin về cách nhận ID ứng dụng khách và Bí mật ứng dụng khách cho ứng dụng giữa các máy của bạn
Đăng nhập
để định cấu hình đoạn mã này với tài khoản của bạn
var client = new RestClient["//localhost:3010/api/private"];
var request = new RestRequest[Method.GET];
request.AddHeader["authorization", "Bearer YOUR_ACCESS_TOKEN"];
IRestResponse response = client.Execute[request];
0Là hữu ích không?
Có/Không
Đăng nhập
để định cấu hình đoạn mã này với tài khoản của bạn
var client = new RestClient["//localhost:3010/api/private"];
var request = new RestRequest[Method.GET];
request.AddHeader["authorization", "Bearer YOUR_ACCESS_TOKEN"];
IRestResponse response = client.Execute[request];
1Là hữu ích không?
Có/Không
Đăng nhập
để định cấu hình đoạn mã này với tài khoản của bạn
var client = new RestClient["//localhost:3010/api/private"];
var request = new RestRequest[Method.GET];
request.AddHeader["authorization", "Bearer YOUR_ACCESS_TOKEN"];
IRestResponse response = client.Execute[request];
2Là hữu ích không?
Có/Không
Đăng nhập
để định cấu hình đoạn mã này với tài khoản của bạn
var client = new RestClient["//localhost:3010/api/private"];
var request = new RestRequest[Method.GET];
request.AddHeader["authorization", "Bearer YOUR_ACCESS_TOKEN"];
IRestResponse response = client.Execute[request];
3Là hữu ích không?
Có/Không
Đăng nhập
để định cấu hình đoạn mã này với tài khoản của bạn
var client = new RestClient["//localhost:3010/api/private"];
var request = new RestRequest[Method.GET];
request.AddHeader["authorization", "Bearer YOUR_ACCESS_TOKEN"];
IRestResponse response = client.Execute[request];
4Là hữu ích không?
Có/Không
Đăng nhập
để định cấu hình đoạn mã này với tài khoản của bạn
var client = new RestClient["//localhost:3010/api/private"];
var request = new RestRequest[Method.GET];
request.AddHeader["authorization", "Bearer YOUR_ACCESS_TOKEN"];
IRestResponse response = client.Execute[request];
5Là hữu ích không?
Có/Không
Đăng nhập
để định cấu hình đoạn mã này với tài khoản của bạn
var client = new RestClient["//localhost:3010/api/private"];
var request = new RestRequest[Method.GET];
request.AddHeader["authorization", "Bearer YOUR_ACCESS_TOKEN"];
IRestResponse response = client.Execute[request];
6Là hữu ích không?
Có/Không
Đăng nhập
để định cấu hình đoạn mã này với tài khoản của bạn
var client = new RestClient["//localhost:3010/api/private"];
var request = new RestRequest[Method.GET];
request.AddHeader["authorization", "Bearer YOUR_ACCESS_TOKEN"];
IRestResponse response = client.Execute[request];
7Là hữu ích không?
Có/Không
Đăng nhập
để định cấu hình đoạn mã này với tài khoản của bạn
var client = new RestClient["//localhost:3010/api/private"];
var request = new RestRequest[Method.GET];
request.AddHeader["authorization", "Bearer YOUR_ACCESS_TOKEN"];
IRestResponse response = client.Execute[request];
8Là hữu ích không?
Có/Không
Đăng nhập
để định cấu hình đoạn mã này với tài khoản của bạn
var client = new RestClient["//localhost:3010/api/private"];
var request = new RestRequest[Method.GET];
request.AddHeader["authorization", "Bearer YOUR_ACCESS_TOKEN"];
IRestResponse response = client.Execute[request];
9Là hữu ích không?
Có/Không
Khách hàng của Auth0 được lập hóa đơn dựa trên số lượng Mã thông báo truy cập từ máy này sang máy khác do Auth0 cấp. Sau khi ứng dụng của bạn nhận được Mã thông báo truy cập, ứng dụng sẽ tiếp tục sử dụng mã đó cho đến khi hết hạn, để giảm thiểu số lượng mã thông báo được yêu cầu
Đối với mục đích thử nghiệm, bạn cũng có thể nhận Mã thông báo truy cập từ tab Thử nghiệm trong
Kiểm tra API của bạn
1. Gọi điểm cuối an toàn
Bạn có thể gửi yêu cầu tới điểm cuối
#import
NSDictionary *headers = @{ @"authorization": @"Bearer YOUR_ACCESS_TOKEN" };
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"//localhost:3010/api/private"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^[NSData *data, NSURLResponse *response, NSError *error] {
if [error] {
NSLog[@"%@", error];
} else {
NSHTTPURLResponse *httpResponse = [NSHTTPURLResponse *] response;
NSLog[@"%@", httpResponse];
}
}];
[dataTask resume];
3 mà không cần chuyển bất kỳ Mã thông báo truy cập nàopackage main
import [
"fmt"
"net/http"
"io/ioutil"
]
func main[] {
url := "//localhost:3010/api/private"
req, _ := http.NewRequest["GET", url, nil]
req.Header.Add["authorization", "Bearer YOUR_ACCESS_TOKEN"]
res, _ := http.DefaultClient.Do[req]
defer res.Body.Close[]
body, _ := ioutil.ReadAll[res.Body]
fmt.Println[res]
fmt.Println[string[body]]
}
0Là hữu ích không?
Có/Không
package main
import [
"fmt"
"net/http"
"io/ioutil"
]
func main[] {
url := "//localhost:3010/api/private"
req, _ := http.NewRequest["GET", url, nil]
req.Header.Add["authorization", "Bearer YOUR_ACCESS_TOKEN"]
res, _ := http.DefaultClient.Do[req]
defer res.Body.Close[]
body, _ := ioutil.ReadAll[res.Body]
fmt.Println[res]
fmt.Println[string[body]]
}
1Là hữu ích không?
Có/Không
package main
import [
"fmt"
"net/http"
"io/ioutil"
]
func main[] {
url := "//localhost:3010/api/private"
req, _ := http.NewRequest["GET", url, nil]
req.Header.Add["authorization", "Bearer YOUR_ACCESS_TOKEN"]
res, _ := http.DefaultClient.Do[req]
defer res.Body.Close[]
body, _ := ioutil.ReadAll[res.Body]
fmt.Println[res]
fmt.Println[string[body]]
}
2Là hữu ích không?
Có/Không
package main
import [
"fmt"
"net/http"
"io/ioutil"
]
func main[] {
url := "//localhost:3010/api/private"
req, _ := http.NewRequest["GET", url, nil]
req.Header.Add["authorization", "Bearer YOUR_ACCESS_TOKEN"]
res, _ := http.DefaultClient.Do[req]
defer res.Body.Close[]
body, _ := ioutil.ReadAll[res.Body]
fmt.Println[res]
fmt.Println[string[body]]
}
3Là hữu ích không?
Có/Không
package main
import [
"fmt"
"net/http"
"io/ioutil"
]
func main[] {
url := "//localhost:3010/api/private"
req, _ := http.NewRequest["GET", url, nil]
req.Header.Add["authorization", "Bearer YOUR_ACCESS_TOKEN"]
res, _ := http.DefaultClient.Do[req]
defer res.Body.Close[]
body, _ := ioutil.ReadAll[res.Body]
fmt.Println[res]
fmt.Println[string[body]]
}
4Là hữu ích không?
Có/Không
package main
import [
"fmt"
"net/http"
"io/ioutil"
]
func main[] {
url := "//localhost:3010/api/private"
req, _ := http.NewRequest["GET", url, nil]
req.Header.Add["authorization", "Bearer YOUR_ACCESS_TOKEN"]
res, _ := http.DefaultClient.Do[req]
defer res.Body.Close[]
body, _ := ioutil.ReadAll[res.Body]
fmt.Println[res]
fmt.Println[string[body]]
}
5Là hữu ích không?
Có/Không
package main
import [
"fmt"
"net/http"
"io/ioutil"
]
func main[] {
url := "//localhost:3010/api/private"
req, _ := http.NewRequest["GET", url, nil]
req.Header.Add["authorization", "Bearer YOUR_ACCESS_TOKEN"]
res, _ := http.DefaultClient.Do[req]
defer res.Body.Close[]
body, _ := ioutil.ReadAll[res.Body]
fmt.Println[res]
fmt.Println[string[body]]
}
6Là hữu ích không?
Có/Không
package main
import [
"fmt"
"net/http"
"io/ioutil"
]
func main[] {
url := "//localhost:3010/api/private"
req, _ := http.NewRequest["GET", url, nil]
req.Header.Add["authorization", "Bearer YOUR_ACCESS_TOKEN"]
res, _ := http.DefaultClient.Do[req]
defer res.Body.Close[]
body, _ := ioutil.ReadAll[res.Body]
fmt.Println[res]
fmt.Println[string[body]]
}
7Là hữu ích không?
Có/Không
package main
import [
"fmt"
"net/http"
"io/ioutil"
]
func main[] {
url := "//localhost:3010/api/private"
req, _ := http.NewRequest["GET", url, nil]
req.Header.Add["authorization", "Bearer YOUR_ACCESS_TOKEN"]
res, _ := http.DefaultClient.Do[req]
defer res.Body.Close[]
body, _ := ioutil.ReadAll[res.Body]
fmt.Println[res]
fmt.Println[string[body]]
}
8Là hữu ích không?
Có/Không
package main
import [
"fmt"
"net/http"
"io/ioutil"
]
func main[] {
url := "//localhost:3010/api/private"
req, _ := http.NewRequest["GET", url, nil]
req.Header.Add["authorization", "Bearer YOUR_ACCESS_TOKEN"]
res, _ := http.DefaultClient.Do[req]
defer res.Body.Close[]
body, _ := ioutil.ReadAll[res.Body]
fmt.Println[res]
fmt.Println[string[body]]
}
9Là hữu ích không?
Có/Không
API sẽ trả về mã trạng thái 401 HTTP [Không được phép]
Một lần nữa, thực hiện cùng một yêu cầu nhưng lần này chuyển Mã thông báo truy cập dưới dạng mã thông báo Bearer trong tiêu đề Ủy quyền của yêu cầu
curl --request GET \
--url //localhost:3010/api/private \
--header 'authorization: Bearer YOUR_ACCESS_TOKEN'
Là hữu ích không?
Có/Không
var client = new RestClient["//localhost:3010/api/private"];
var request = new RestRequest[Method.GET];
request.AddHeader["authorization", "Bearer YOUR_ACCESS_TOKEN"];
IRestResponse response = client.Execute[request];
Là hữu ích không?
Có/Không
package main
import [
"fmt"
"net/http"
"io/ioutil"
]
func main[] {
url := "//localhost:3010/api/private"
req, _ := http.NewRequest["GET", url, nil]
req.Header.Add["authorization", "Bearer YOUR_ACCESS_TOKEN"]
res, _ := http.DefaultClient.Do[req]
defer res.Body.Close[]
body, _ := ioutil.ReadAll[res.Body]
fmt.Println[res]
fmt.Println[string[body]]
}
Là hữu ích không?
Có/Không
HttpResponse response = Unirest.get["//localhost:3010/api/private"]
.header["authorization", "Bearer YOUR_ACCESS_TOKEN"]
.asString[];
Là hữu ích không?
Có/Không
var axios = require["axios"].default;
var options = {
method: 'GET',
url: '//localhost:3010/api/private',
headers: {authorization: 'Bearer YOUR_ACCESS_TOKEN'}
};
axios.request[options].then[function [response] {
console.log[response.data];
}].catch[function [error] {
console.error[error];
}];
Là hữu ích không?
Có/Không
#import
NSDictionary *headers = @{ @"authorization": @"Bearer YOUR_ACCESS_TOKEN" };
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"//localhost:3010/api/private"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^[NSData *data, NSURLResponse *response, NSError *error] {
if [error] {
NSLog[@"%@", error];
} else {
NSHTTPURLResponse *httpResponse = [NSHTTPURLResponse *] response;
NSLog[@"%@", httpResponse];
}
}];
[dataTask resume];
Là hữu ích không?
Có/Không
$curl = curl_init[];
curl_setopt_array[$curl, [
CURLOPT_PORT => "3010",
CURLOPT_URL => "//localhost:3010/api/private",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"authorization: Bearer YOUR_ACCESS_TOKEN"
],
]];
$response = curl_exec[$curl];
$err = curl_error[$curl];
curl_close[$curl];
if [$err] {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Là hữu ích không?
Có/Không
________số 8
Là hữu ích không?
Có/Không
require 'uri'
require 'net/http'
url = URI["//localhost:3010/api/private"]
http = Net::HTTP.new[url.host, url.port]
request = Net:::Get.new[url]
request["authorization"] = 'Bearer YOUR_ACCESS_TOKEN'
response = http.request[request]
puts response.read_body
Là hữu ích không?
Có/Không
curl --request GET \
--url //localhost:3010/api/private \
--header 'authorization: Bearer YOUR_ACCESS_TOKEN'
0Là hữu ích không?
Có/Không
Lần này API sẽ trả về phản hồi thành công
2. Kiểm tra điểm cuối trong phạm vi
Để kiểm tra điểm cuối yêu cầu phạm vi, hãy chuyển Mã thông báo truy cập chứa phạm vi chính xác dưới dạng mã thông báo Bearer trong tiêu đề Ủy quyền