php firebase php-jwt,php - PHP Firebase帮助 - 设置JWT - 堆栈内存溢出

火力/ PHP-JWT

// Allow from any origin

if (isset($_SERVER['HTTP_ORIGIN'])) {

header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");

header('Access-Control-Allow-Credentials: true');

header('Access-Control-Max-Age: 86400'); // cache for 1 day

}

// Access-Control headers are received during OPTIONS requests

if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))

header("Access-Control-Allow-Methods: GET, POST, OPTIONS");

if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))

header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

exit(0);

}

require_once('vendor/autoload.php');

use \Firebase\JWT\JWT;

define('SECRET_KEY','Super-Secret-Key'); // secret key can be a random string and keep in secret from anyone

define('ALGORITHM','HS256'); // Algorithm used to sign the token

$postdata = file_get_contents("php://input");

$request = json_decode($postdata);

$action = $request->action;

// Login section

if ($action == 'login') {

$email = $request->email;

$password = $request->password;

//A dummy credential match.. you should have some SQl queries to match from databases

if($email == "freaky@jolly.com" && $password == "12345678")

{

$iat = time(); // time of token issued at

$nbf = $iat + 10; //not before in seconds

$exp = $iat + 60; // expire time of token in seconds

$token = array(

"iss" => "http://example.org",

"aud" => "http://example.com",

"iat" => $iat,

"nbf" => $nbf,

"exp" => $exp,

"data" => array(

"id" => 11,

"email" => $email

)

);

http_response_code(200);

$jwt = JWT::encode($token, SECRET_KEY);

$data_insert=array(

'access_token' => $jwt,

'id' => '007',

'name' => 'Jolly',

'time' => time(),

'username' => 'FreakyJolly',

'email' => 'contact@freakyjolly.com',

'status' => "success",

'message' => "Successfully Logged In"

);

}else{

$data_insert=array(

"data" => "0",

"status" => "invalid",

"message" => "Invalid Request"

);

}

}

// Get Dashboard stuff

else if($action == 'stuff'){

$authHeader = $_SERVER['HTTP_AUTHORIZATION'];

$temp_header = explode(" ", $authHeader);

$jwt = $temp_header[1];

try {

JWT::$leeway = 10;

$decoded = JWT::decode($jwt, SECRET_KEY, array(ALGORITHM));

// Access is granted. Add code of the operation here

$data_from_server = '{"Coords":[{"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27770755361785","Longitude":"-9.011979642121824","Timestamp":"Fri Jul 05 2013 12:02:09 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"}]}';

$data_insert=array(

"data" => json_decode($data_from_server),

"status" => "success",

"message" => "Request authorized"

);

}catch (Exception $e){

http_response_code(401);

$data_insert=array(

//"data" => $data_from_server,

"jwt" => $jwt,

"status" => "error",

"message" => $e->getMessage()

);

}

}

echo json_encode($data_insert);

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值