为了发送和接收授权载体,我读了用cURL设置载体令牌的正确方法,以及如何正确使用载体令牌?这是我的代码:
$url = "http://www.example.com/phpinfo.php";
$data = array('long_url' => 'http://www.google.com');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
//example token
$token = 'ffaaf96dd9';
$header = array("Authorization: Bearer ". $token);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$response = curl_exec($ch);
curl_close($ch);
print($response);
如何设置授权$令牌,然后我可以访问它通过全局$_SERVER["授权"]变量在phpinfo.php.
我错过了什么?
持有者令牌不是由服务器自动设置的
开发人员需要创建自定义函数,用于编码和解码持有者令牌。
持有者令牌是一种对敏感数据数组进行编码的方法,以便在服务器之间安全传输。
通常与其他软件结合使用,例如用于oAuth跨服务器API功能。
oAuth 是一个开源框架,允许在服务器之间创建安全通信,而不会持续存在使用密码的风险。
承载客户端允许对用于用户认证和/或敏感数据传输的信息阵列进行编码。
根据您需要使用它的用途,您可能会在网上找到大量的示例、插件和扩展,如果它附带了一些3d派对软件,您通常会得到详细的文档。
以下是基于Wordpress CMS的网站使用承载令牌的示例。
1. 在 Wordpress oAuth 上安装插件组合,Rest_API
您将需要创建自定义令牌生成功能,接收URL点等。然后,您将能够安全地发送/接收信息,例如Chrome/Safari浏览器扩展和您的Wordpress网站之间。
2.在WordPress网站上接收Url点的示例:
add_action( 'rest_api_init', function () {
//apply_filters( 'determine_current_user', true );
register_rest_route( 'humanai/v1', 'data', array(
'methods' => 'POST',
'callback' => function($request){
global $wpdb;
$data = $request->get_params();
$query = array( 'meta_key' => 'hai-token', 'meta_value' => $data[0]['token'] );
$user_id = $wpdb->query('SELECT * FROM '.$wpdb->prefix.'usermeta WHERE meta_key = \'hai-token\' AND meta_value=\''. $data[0]['token'].'\'');
/*请注意processing_function,您将使用它来处理请求并在需要时返回任何数据。*/
return processing_function($user_id, $request);
}
) );
),12);
3.处理功能
function processing_function($user_id, $request){
$res = update_user_meta($user_id,'new_creadit_card_number',$request['new_creadit_card_number']);
}
当然,你需要一个功能来控制Bearer代币……有一个原因叫Bearer……因为它承载着信息,请看我下面的例子:
function jwt_token($attr=null){
$secret_key = defined('JWT_AUTH_SECRET_KEY') ? JWT_AUTH_SECRET_KEY : false;
/** First thing, check the secret key if not exist return a error*/
if (!$secret_key) {
return new WP_Error(
'jwt_auth_bad_config',
__('JWT is not configured properly, please contact the admin', 'wp-api-jwt-auth'),
array(
'status' => 403,
)
);
}
/** Try to authenticate the user with the passed credentials*/
$user = wp_get_current_user();
/** If the authentication fails return a error*/
if (is_wp_error($user)) {
$error_code = $user->get_error_code();
return new WP_Error(
'[jwt_auth] '.$error_code,
$user->get_error_message($error_code),
array(
'status' => 403,
)
);
}
/** Valid credentials, the user exists create the according Token */
$issuedAt = time();
$notBefore = apply_filters('jwt_auth_not_before', $issuedAt, $issuedAt);
$expire = apply_filters('jwt_auth_expire', $issuedAt + (DAY_IN_SECONDS * 30), $issuedAt);
$token = array(
'iss' => get_bloginfo('url'),
'iat' => $issuedAt,
'nbf' => $notBefore,
'exp' => $expire,
'data' => array(
'user' => array(
'id' => $user->data->ID,
),
),
);
require dirname(dirname(dirname(__FILE__))) . '/jwt-authentication-for-wp-rest-api/includes/vendor/autoload.php';
/** Let the user modify the token data before the sign. */
$token = JWT::encode(apply_filters('jwt_auth_token_before_sign', $token, $user), $secret_key);
/*下面的注意标记已签名,现在创建带有用户数据的对象到客户端*/
$data = array(
'token' => $token,
'user_email' => $user->data->user_email,
'user_nicename' => $user->data->user_nicename,
'user_display_name' => $user->data->display_name,
'user_new_credit_card' => 'XXXX XXXX XXXX XXXX'
);
/** Let the user modify the data before send it back */
return apply_filters('jwt_auth_token_before_dispatch', $data, $user);
}
请注意:
这不是一个完整的功能、软件,也不是对原始问题的完整解决方案。
所有信息均严格用于教育目的。
我强烈建议使用其他加密方法来保护敏感信息。
当构建一个完整的功能/软件并面临新问题时,为什么不在下面的评论中把它们链接到一个新问题中呢?-我会在新的回答中尽我所能提供帮助。
我有一个Web api终端,它给我JWT令牌。它不是一个完全授权的服务器。它只是可以生成一个JWT令牌。 现在我有另一个用 aspnet 核心编写的 Web 应用程序。其中在启动中.cs我添加了以下行,以便我可以使用收到的 JWT 令牌进行授权 我也有一个登录表单(在web应用程序中),用户输入用户名和密码,我发送到web api并获得令牌。为了保护web应用程序中的任何控制器,我只使用了[Aut
在邮递员中,我有一个集合,每个请求都使用集合级承载令牌授权。 现在,我想做的是在我的预请求脚本中发送 http 请求(用于刷新访问令牌),但我不知道是否可以在预请求脚本中获取访问令牌(从集合授权)。我知道我可以得到这样的集合变量 , 但是有没有一种方法可以从授权中获取(并设置)价值呢?
我正在尝试与URL(python客户端)建立websocket连接,该URL需要传入jwt令牌,服务器(在GO中实现)在上侦听该请求,并应该通过解析令牌进行身份验证。 我试着用这部分代码来提出请求- 此请求命中运行此代码以验证此请求的服务器 func ParseFromRequest(req*http.Request,keyFunc-keyFunc)(令牌*令牌,错误){ } 每次,我都会得到“E
我们正在使用Spring引导作为后端,仅为auth和生成jwt令牌的其余部分在hasura中处理。 我面临正确生成JWT的问题。 这是生成jwt令牌作为 但它hasura返回无效的签名。在哪里作为在节点 jwt从节点 使用相同的密钥和算法工作得非常好。对于节点,我使用了jsonwebtoken库。
目前在我的团队的web应用程序中,我们在一个名为Auth:“dfdfdf ...”的头中传递访问令牌.我们使用AWS Lambda和令牌授权器来访问我们的API网关资源。 还有一种不同类型的承载令牌头:授权:承载:通过Javascript发送授权令牌承载 区别是专有/命名,还是亚马逊的令牌授权人在功能上与承载令牌模式不同?
null null 环境 Java:openjdk 11 如果你能给我们任何建议,我将不胜感激。