我不明白为什么在最后一行代码的 74 处给我一个错误,说文件的意外 en。
我尝试了或不尝试?>但更改错误并且无论如何都不起作用有人可以帮助我吗?
是一个 jwt 页面登录,我使用 slimapp 框架。当我使用用户名和密码进行通话时
这是我遇到的错误:
Parse error : syntax error, unexpected '?>' in C:\xampp\htdocs\slimapp\src\routes\login.php在第74行
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, DELETE, PUT, PATCH, OPTIONS');
header('Access-Control-Allow-Headers: token, Content-Type');
$app = new \Slim\App;
$app->post("/authenticate", function(Request $request, Response $response){
$username= $request->getParam('username');
$password= $request->getParam('password');
$table_name = 't_users';
$sql ="SELECT id, first_name, last_name, password FROM " . $table_name . " WHERE username = ? LIMIT 0,1";
$db = new db();
$db=$db->connect();
$stmt = $conn->prepare( $sql );
$stmt->bindParam(1, $username);
$stmt->execute();
$num = $stmt->rowCount();
if($num > 0){
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$id = $row['id'];
$username = $row['username'];
$roles = $row['roles'];
$password2 = $row['password'];
if(password_verify($password, $password2))
{
$secret_key = "javainuse";
$issuer_claim = "LATAVOLAITALIANA"; // this can be the servername
$audience_claim = "THE_AUDIENCE";
$issuedat_claim = time(); // issued at
$notbefore_claim = $issuedat_claim + 10; //not before in seconds
$expire_claim = $issuedat_claim + 60; // expire time in seconds
$token = array(
"iss" => $issuer_claim,
"aud" => $audience_claim,
"iat" => $issuedat_claim,
"nbf" => $notbefore_claim,
"exp" => $expire_claim,
"data" => array(
"id" => $id,
"username" => $username,
"roles" => $roles,
"email" => $email
));
http_response_code(200);
$jwt = JWT::encode($token, $secret_key);
echo json_encode(
array(
"message" => "Successful login.",
"jwt" => $jwt,
"email" => $email,
"expireAt" => $expire_claim
));
}
else{
http_response_code(401);
echo json_encode(array("message" => "Login failed.", "password" => $password));
}
}
}
?>