2012-01-15 30 views
5

Tôi mới dùng symfony2 và tôi đang cố gắng kết nối với FOSUserBundle qua api còn lại. Xác thực trình duyệt web hoạt động tốt và tôi có thể tạo người dùng với FOSUserBundle. Trong thực tế, tôi muốn xây dựng một webservice với Symfony. Làm cách nào để kết nối người dùng còn lại? Đây có phải là một gói để sử dụng phần còn lại với symfony2 dễ dàng không?Xác thực thông qua phần còn lại với symfony2

Cảm ơn.

+2

Bạn nên có một cái nhìn tại [FOSRestBundle] (https://github.com/FriendsOfSymfony/FOSRestBundle). –

Trả lời

0

Để xác thực người dùng, trước tiên bạn tạo một hành động sẽ lấy tên người dùng và mật khẩu. Sau đó, tìm người dùng từ cơ sở dữ liệu theo tên người dùng và mật khẩu. Để thực hiện chuyển như trong cơ sở dữ liệu, bạn phải tạo mật khẩu khi FOSUserBundle đang tạo ra nó. Sau đó u cần tạo UsernamePasswordToken. Để biết rằng bạn có thể sử dụng mã sau đây trong hành động

$providerKey = $this->container->getParameter('fos_user.firewall_name'); 
$token = new UsernamePasswordToken($user, null, $providerKey, $user->getRoles()); 
$this->container->get('security.context')->setToken($token); 

Tôi nghĩ nó sẽ giúp bạn.

+4

đây là câu trả lời sai. REST API phải có nhà cung cấp xác thực tùy chỉnh để không sử dụng cookie để duy trì người dùng đã đăng nhập. đây là một bài viết hay về cách thực hiện điều đó. http://symfony.com/doc/2.0/cookbook/security/custom_authentication_provider.html –

1

Tôi khuyên bạn nên sử dụng "Wsse" làm phương thức ủy quyền.

Bạn có thể đọc về điều đó tại this post. Thậm chí còn có a bundle cung cấp các thói quen thông thường.

Về làm REST ful ứng dụng của bạn, tôi sẽ đề nghị sử dụng FosRestBundle

Các vấn đề liên quan