【问题标题】:Catalyst authentication without DBIx没有 DBIx 的 Catalyst 身份验证
【发布时间】:2012-02-13 11:23:54
【问题描述】:

我正在向我的 Catalyst 应用程序添加身份验证。该应用程序是来自另一个系统的端口,因此我必须使用当前的后台来处理某些事情。

其中之一是用户数据库。它不是 SQL,我必须通过 Web 服务访问它。

按照docs,现在我可以使用用户/密码的哈希值,如示例所示。我还使用 DBIx 测试了 Catalyst 教程。

但现在我需要插入我自己的模型来检查并从真正的后台检索用户。

在哪里?

我从控制器调用 auth 插件

$c->authenticate({ username => $username, password => $password  }

在我的配置中(来自教程)

 __PACKAGE__->config('Plugin::Authentication' => {
    default_realm => 'members',
    realms => {
        members => {
            credential => {
                class => 'Password',
                password_field => 'password',
                password_type => 'clear'
            },
            store => {
                class => 'DBIx::Class',
                user_model => 'MyApp::User',
                role_relation => 'roles',
                role_field => 'rolename',
            }
        }
    }
});

那么我在哪里可以调用我的 Web 服务模型?

提前谢谢你。

更新: 为了度过这一周,我做了自己的网络服务查询。如果结果正常,我将获得的数据传递给这个硬编码领域。非常、非常、非常难看,但我提供了功能。现在我又认真了。

【问题讨论】:

    标签: perl authentication catalyst dbix-class


    【解决方案1】:

    看来你必须创建自己的auth store

    store => {
      class => '+MyApp::Authentication::Store::NetAuth',
      authserver => '192.168.10.17'
    }
    

    也看Catalyst::Authentication::Store::Minimal

    【讨论】:

    • 谢谢。我的身份验证数据来自“网络服务”,但它不是我可以通过 IP 访问的预先存在的“网络服务”。我可以使用 SOAP::Lite 查询远程服务器,发送用户和密码,并从用户返回数据。我不知道在授权中如何或在哪里发送检索到的数据。
    猜你喜欢
    • 2013-01-19
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 2014-12-15
    • 2014-10-25
    • 1970-01-01
    相关资源
    最近更新 更多