【问题标题】:Symfony 5 - How implement basic authentication on REST callSymfony 5 - 如何在 REST 调用中实现基本身份验证
【发布时间】:2021-02-16 12:21:25
【问题描述】:

我创建了一个在方法 POST 中接受请求的 URL。他拿了一个 JSON,然后返回给我一个 XML 转换的文件。

在请求之前,我想在这个 URL 上获得一个基本授权(只是一个密码,我不需要注册用户),以允许用户提出请求。但我不明白 symfony 上的授权是如何工作的。

我认为我需要的只是在 documentation 这个页面中 但我遇到了一些错误,我不明白它是如何工作的(什么是 realme?安全区域是什么意思?)

这是我的控制器,我如何在这个 REST 调用上实现基本身份验证?

class IndexController extends AbstractController
{

    /**
     * @Route("/converter-hl7", name="converter", methods={"POST"})
     */

    public function index(Request $request) {

        $json = $request->getContent();

        $converter = new HL7ConverterService($json, new ErrorService());
        $xml = $converter->outputXML();


        $response = new Response($xml);
        $response->headers->set('Content-Type', 'xml');

        return $response;
    }
    

}

【问题讨论】:

  • 如何认证?请求中是否有 auth 的数据?你已经有一个用户会话了吗?你应该提供更多关于它的数据。
  • 不,我只需要一个默认密码,不需要用户,也不需要数据库
  • 在你发送请求之前,把任何方法写入密码;然后,您可以在控制器内部使用密码,如果密码正确,则发送 xml。
  • 但是我怎么写密码呢?不能使用基本身份验证吗?
  • 但是你想要什么?你想怎么做?

标签: php api rest symfony basic-authentication


【解决方案1】:

我将 JWT 用于我的 API 以控制和保护 API 访问
你应该检查this Bundle 但是要使用它,您需要创建 user 。 如果您不想创建用户,您可以要求发件人输入密码并将其集成到请求中,然后根据该密码控制访问。

【讨论】:

  • 但是我不能通过基本身份验证来做到这一点?
  • 对于普通的身份验证,您将需要一个用户,但如果您不喜欢在系统中使用用户,我能看到的唯一解决方案是在请求中发送密码,因为我和 @MR马克二世告诉你
  • 所以如果我不明白,你建议我把密码放在网址里,得到它并检查他是否正确?
  • 它不安全,但总比没有好
猜你喜欢
  • 1970-01-01
  • 2016-05-04
  • 1970-01-01
  • 2017-11-02
  • 2011-12-06
  • 2015-04-20
  • 2015-09-18
  • 1970-01-01
  • 2011-08-20
相关资源
最近更新 更多