Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/wincloud_gateway/node_modules/grant/lib/ drwxr-xr-x | |
| Viewing file: Select action/file-type:
var request = require('./client')
module.exports = ({request:client}) => async ({provider, input, output}) => {
if (!provider.response || !provider.response.includes('profile')) {
return {provider, input, output}
}
if (provider.apple && !provider.profile_url && input.body.user) {
output.profile = input.body.user
return {provider, input, output}
}
if (!provider.profile_url) {
output.profile = {error: 'Grant: No profile URL found!'}
return {provider, input, output}
}
var options = {
method: 'GET',
url: provider.profile_url,
headers: {},
}
if (provider.oauth === 2) {
options.headers.authorization = `Bearer ${output.access_token}`
}
else if (provider.oauth === 1) {
options.oauth = {
consumer_key: provider.key,
consumer_secret: provider.secret,
token: output.access_token,
token_secret: output.access_secret,
}
}
if (custom[provider.name]) {
Object.assign(options, custom[provider.name]({provider, output}))
}
if (provider.subdomain) {
options.url = options.url.replace('[subdomain]', provider.subdomain)
}
try {
var {body} = await request({...client, ...options})
// JSONP
if (provider.flickr) {
body = JSON.parse(/^.*\((.*)\)/.exec(body)[1])
}
// JSONP + secondary request
if (provider.qq) {
body = JSON.parse(/^.*\((.*)\)/.exec(Object.keys(body)[0])[1])
body = {...body, ...(await request({...client, ...options,
url: 'https://graph.qq.com/user/get_user_info',
qs: {
access_token: output.access_token,
oauth_consumer_key: provider.key,
openid: body.openid
}
})).body}
}
output.profile = body
}
catch (err) {
output.profile = {error: err.body || err.message}
}
return {provider, input, output}
}
var custom = {
arcgis: () => ({qs: {f: 'json'}}),
baidu: ({output}) => ({qs: {access_token: output.access_token}}),
constantcontact: ({provider}) => ({qs: {api_key: provider.key}}),
deezer: ({output}) => ({qs: {access_token: output.access_token}}),
disqus: ({provider}) => ({qs: {api_key: provider.key}}),
dropbox: () => ({method: 'POST'}),
echosign: ({output}) => ({headers: {'Access-Token': output.access_token}}),
flickr: ({provider}) => ({qs: {method: 'flickr.urls.getUserProfile', api_key: provider.key, format: 'json'}}),
foursquare: ({output}) => ({qs: {oauth_token: output.access_token}}),
getpocket: ({provider, output}) => ({json: {consumer_key: provider.key, access_token: output.access_token}}),
instagram: ({provider, output}) => /^\d+$/.test(provider.key) ? {qs: {fields: 'id,account_type,username'}} : {url: 'https://api.instagram.com/v1/users/self', qs: {access_token: output.access_token}},
mailchimp: ({output}) => ({qs: {apikey: output.access_token}}),
meetup: ({output}) => ({qs: {member_id: 'self'}}),
mixcloud: ({output}) => ({qs: {access_token: output.access_token}}),
qq: ({output}) => ({qs: {access_token: output.access_token}}),
shopify: ({output}) => ({headers: {'X-Shopify-Access-Token': output.access_token}}),
slack: ({output}) => ({qs: {token: output.access_token}}),
soundcloud: ({output}) => ({qs: {oauth_token: output.access_token}}),
stackexchange: ({output}) => ({qs: {key: output.access_token}}),
stocktwits: ({output}) => ({qs: {access_token: output.access_token}}),
tumblr: ({output}) => ({qs: {api_key: output.access_token}}),
vk: ({output}) => ({qs: {access_token: output.access_token, v: '5.103'}}),
wechat: ({output}) => ({qs: {access_token: output.access_token, openid: output.raw.openid, lang: 'zh_CN'}}),
weibo: ({output}) => ({qs: {access_token: output.access_token, uid: output.raw.uid}}),
twitch: ({provider, output}) => ({headers: {'client-id': provider.key, authorization: `Bearer ${output.access_token}`}}),
twitter: ({output}) => ({qs: {user_id: output.raw.user_id}}),
}
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0073 ]-- |