Zend_Db 和 Zend_Auth 中的数据库特定函数

发布于 2024-10-31 13:55:05 字数 185 浏览 4 评论 0原文

我正在使用 Zend_Db 连接到 postgres 数据库。我想使用数据库中的一些函数,一个是内置函数(digest() 函数),其他函数是非核心函数。

有没有办法允许 Zend_Db 和/或 Zend_Auth 使用它们?目前,它似乎删除了摘要功能,因此我无法使用盐存储密码(例如),其他功能(例如使用内置 UUID 功能)也不起作用。

I am using Zend_Db to connect to a postgres database. I want to use some functions in the database, one is built in (the digest() function) and others are one's that are non-core.

Is there a way to allow Zend_Db and/or Zend_Auth to use them? Current it appears to strip out the digest function so I can't store passwords with a salt (for example), other functions like using a built in UUID function don't work either.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

拍不死你 2024-11-07 13:55:05

密码和摘要函数的问题可以通过在数据库中定义自己的函数来解决,例如:

CREATE OR REPLACE FUNCTION sha1(character varying)
RETURNS character varying AS
BEGIN
RETURN ENCODE(digest($1, 'sha1'), 'hex');
END;
LANGUAGE plpgsql

对于授权:

    $authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Registry::get('db'));
    $authAdapter->setTableName('users')
            ->setIdentityColumn('login')
            ->setCredentialColumn('password')
            ->setIdentity($username)
            ->setCredential($password);

    $authAdapter->setCredentialTreatment(
            "SHA1(CONCAT(?,salt))"
    );

Zend_Db_Expr 也可能有帮助

Problem with passwords and digest function you can resolve by defining your own function in database, for example:

CREATE OR REPLACE FUNCTION sha1(character varying)
RETURNS character varying AS
BEGIN
RETURN ENCODE(digest($1, 'sha1'), 'hex');
END;
LANGUAGE plpgsql

and for authorization:

    $authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Registry::get('db'));
    $authAdapter->setTableName('users')
            ->setIdentityColumn('login')
            ->setCredentialColumn('password')
            ->setIdentity($username)
            ->setCredential($password);

    $authAdapter->setCredentialTreatment(
            "SHA1(CONCAT(?,salt))"
    );

Zend_Db_Expr also may be helpful

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文