J'essaie d'utiliser DBIx::Class
pour les utilisateurs d'authentification de l'application Catalyst. Mes étapes que j'ai fait:Impossible d'utiliser DBIx :: Class pour l'authentification à partir de l'application Catalyst
1) créé SQLite db
CREATE TABLE people (
id integer primary key,
name text not null,
password text not null);
2) créé modèle Catalyst personnes;
3) mis en place config auth dans MyApp.pm
__PACKAGE__->config('Plugin::Authentication' => {
default => { credential => {
class => 'Password',
password_field => 'password',
password_type => 'clear'
},
store => {
class => 'DBIx::Class',
user_model => 'People'
}
}
}
);
4) du contrôleur Crée Auth et un procédé mis en connexion dans le:
sub login : Local {
my ($self, $c) = @_;
if (my $user = $c->req->params->{user} and my $password = $c->req->params->{password}) {
if ($c->authenticate({ username => $user, password => $password })) {
$c->res->body("hello " . $c->user->get("id"));
} else {
# login incorrect
$c->res->body("Wrong pass or name!");
}
} else {
# invalid form input
$c->res->body("Type name & pass");
}
}
5) appelé connexion de la méthode quand une forme avec l'utilisateur et les données de mot de passe sont soumises. Et je suis arrivé ce message:
exception Pris dans MyApp :: Controller :: Auth> login « Impossible de localiser la méthode objet "result_source" via paquet "MyApp :: Model :: People" à /usr/local/share/perl/5.14.2/Catalyst/Authentification/Store/DBIx/Class/User.pm ligne 35, ligne 999. "
Comment peut-il être fixé?
"' store => {classe => 'DBIx :: Class', user_model => 'MyApp :: Users', role_column => 'rôles',}}}); ' Le système d'authentification fonctionne dans les coulisses pour charger vos données à partir de la nouvelle source.Le reste de votre application est complètement inchangé. " Ceci vient de l'homme de Catalyst :: Plugin :: Authentication. – edem