0

I am developing a rest API for login and I not its working means I can fetch data from the server and send response to the user. Now I want to implement basic Authentication with it. I am very new for Rest API development and Slim. So please Help me in that.

$app->get('/users', function() use($app, $db)
{

$app->response()->header("Content-Type", "application/json");

$req=$app->request();
$pass = $req->params('pass'); // Getting parameter with names
$email = $req->params('email'); // Getting parameter with names


$user=$db->Sign_Up()->where (array('email_id'=>$email, 'password'=> $pass));
$data=$user->fetch();
$status=$data['status'];
$user_pass=$data['password'];
$user_email=$data['email_id'];
$user_name=$data['user_name'];
$uesr_ip=$_SERVER['REMOTE_ADDR'];


if ($pass!=$user_pass || $email != $user_email)
{
echo json_encode( 
array(
'status'=>false,
'Message'=>'Email or Password dose not match.'
));

}
else if($status=='active')
    {
            $user_os        =   getOS();
            $user_browser   =   getBrowser();

$message = "
<div style='font-size:15px;text-align:center;border: 1px solid #ddd;background: #DADADA;margin: 2%;padding: 5%;'>
Hi $user_name,
Your KarAssist Account $user_email was just used to sign in from $user_browser on $user_os.
</div>
";

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";



            $mail_sent=mail($user_email, "New Sign In from $user_browser on $user_os", $message,$headers);

            if ($mail_sent)
            {
                        echo json_encode(array(
    'User_Info'=>array(
                        'status'=>true, 
                        'id'=> $data['id'],
                        'First_Name'=>$data['first_name'],
                        'Email_Id'=>$data['email_id'],
                        'Last_Name'=>$data['last_name'],
                        'Phone_Number'=>$data['phone_number'],
                        'Status'=>$data['status']

    ),

    'App_info'=>array(
                    'Device_token'=>$data['device_token'],
                    'App_version'=>$data['app_version']         
        )));

            }
            else
            {
                echo json_encode(array(
    'status'=>false,
    'message'=>"There is some Technical error. We are sorry to inform you we could not sent mail to you. So please change your mail ASAP."
    ));


            }
}
else
{
    echo json_encode(array(
    'status'=>false,
    'message'=>"User with Email $email is not avtivated yet."
    ));
}
});

This code is working good. I want to implement Basic auth with it. So let me know how to do it.

2
  • please format your code Commented Feb 26, 2016 at 15:17
  • Which version of Slim are you using? Commented Feb 28, 2016 at 23:42

1 Answer 1

1

Easiest thing is to use an existing Basic Auth middleware. With this middleware you can do something like following:

$app = new \Slim\App;

$app->add(new \Slim\Middleware\HttpBasicAuthentication([
    "path" => "/api",
    "realm" => "Protected",
    "users" => [
        "root" => "t00r",
        "user" => "passw0rd"
    ]
]));
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks for the help. :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.