使用API最少的供应商和OAuth2的新手。使用npm包oauth和request。
创建一个节点模块,将数据从数据库发布到服务器的API。
我已获得授权令牌,但现在我不确定如何使用数据发布请求发送该令牌。供应商服务器使用简单的Cannot POST /accounts/import
进行响应。
那么 - 如何将OAuth2令牌与发布数据一起发送回服务器?
var request = require('request'),
clcreds = require('../../creds/creds.js');
var OAuth = require('oauth');
var OAuth2 = OAuth.OAuth2;
var oauth2 = new OAuth2(clcreds.clientId, clcreds.clientSecret, 'https://URL.com/', null, 'token', null);
oauth2.getOAuthAccessToken('', {
'grant_type': 'client_credentials'
}, function(e, access_token, refresh_token, results) {
console.log(e, access_token, refresh_token, results);
request.post('https://URL.com/accounts/import', {
"accounts": [{
...
}]
}, function(e, r, body) {
//returns Cannot POST /accounts/import
})
})
答案 0 :(得分:1)
大多数资源服务器都支持RFC 6750, 2.1. Authorization Request Header Field。如果您的服务器支持它,您可以通过添加 for ($k = 0; $k < $jobAssignmentCount; $k++) {
$randomDate = $faker->dateTimeBetween($job->starts_at, '+6 months');
$dateTime = Carbon::instance($randomDate)->minute(0)->second(0);
$start = $dateTime;
$end = $dateTime;
$end->addHours(4);
$jobAssignment = JobAssignment::create([
'job_id' => $job->id,
'starts_at' => $start,
'ends_at' => $end,
'assignment_notes' => 'Assignment Notes',
'is_cancelled' => $faker->boolean(10),
'cancelled_at' => $faker->dateTimeBetween('+6 months', '+1 year'),
'cancelled_by_profile_id' => $profile->id,
'is_billable' => $faker->boolean(75),
]);
}
标头将访问令牌传递到服务器,如下所示。
Authorization
如果您的服务器不支持RFC 6750中定义的任何方法,则必须询问服务器的实现者如何将访问令牌传递给服务器。