2010-06-02 3 views
0

Может ли кто-нибудь указать мне в правильном направлении относительно того, как использовать базовую HTTP-аутентификацию api?Symfony Basic API Http Authentication

Я создаю спокойный api с symfony, но хотел бы, чтобы пользователи вошли в систему, чтобы получить определенные данные. Мне также хотелось бы, чтобы многие из этих методов зависели от имени пользователя в процессе аутентификации, чтобы получить некоторые данные (используя имя пользователя из учетных данных, чтобы получить всех друзей пользователей)

Спасибо!

ответ

1

Что-то вроде этого:

function send401() { 
    $realm = "Credentials for site xxx"; 
    header("HTTP/1.0 401 Authorization Required") 
    header('WWW-Authenticate: Basic realm="'.$realm.'"'); 
    die(); 
} 


if (!array_key_exists('PHP_AUTH_USER',$_SERVER) || 
     !array_key_exists('PHP_AUTH_PW',$_SERVER)) { 
    send401(); 
} 
else { 
    $res = authenticate_user($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']); 
    if (!$res) 
     send401(); 
} 

Имя пользователя, хранится в $_SERVER['PHP_AUTH_USER'].

+1

Это также возможно с конфигурацией Symfony2. Найдите 'http_basic' и' stateless' на http://symfony.com/doc/current/book/security.html. Я не уверен, когда этот подход, основанный на настройке, стал возможен благодаря Symfony2. –