Mojolicious 基本登录

2024-01-24

我正在 Mojolicious 中寻找身份验证。我有 2 个页面 momcorp1 和 momcorp2,但我不能 在页面之间,有人知道如何做到这一点。

我正在阅读有关“under”的内容,但我不知道如何做到这一点。

另一种形式是使用 -Mojolicious::Plugin::Authentication - 但更困难。

这是代码,当 1 单击链接到 momcorp 2 时,显示错误。

#!/usr/bin/env perl
use Mojolicious::Lite;

helper auth => sub {
my $self = shift;

return 1 if
$self->param('username') eq 'user1' and
$self->param('password') eq 'user1';
};

get '/login'=> sub { shift->render('login') };

under sub {
my $self = shift;
return 1 if $self->auth;

$self->render(text => 'denied');
return;
};

post 'momcorp' => sub { shift->render(template => 'momcorp1') };

post '/momcorp/carol' => sub { shift->render(template => 'momcorp2') 
};

app->start

__DATA__

@@ login.html.ep
%= t h1 => 'login'
%= form_for '/momcorp' => (method => 'post') => begin
username: <%= text_field 'username' %>
password: <%= text_field 'password' %>
%= submit_button 'log in' 
%= end

@@ momcorp1.html.ep
%= t h1 => 'momcorp1'
 <a href="/momcorp/carol">Link to 2</a>

@@ momcorp2.html.ep
%= t h1 => 'momcorp2'
<a href="/momcorp">Link to 1</a>

这是您想要的示例

#!/usr/bin/env perl
use Mojolicious::Lite;

helper auth => sub {
  my $c = shift;

  return 1 if
  $c->param('username') eq 'user1' and
  $c->param('password') eq 'pass1';
  return 0;
};

get '/'=> sub { shift->render } => 'index';

post '/login' => sub {
  my $c = shift;
  if ($c->auth) {
    $c->session(auth => 1);
    return $c->redirect_to('t1');
  }
  $c->flash('error' => 'Wrong login/password');
  $c->redirect_to('index');
} => 'login';

get '/logout' => sub {
  my $c = shift;
  delete $c->session->{auth};
  $c->redirect_to('index');
} => 'logout';

under sub {
  my $c = shift;
  return 1 if ($c->session('auth') // '') eq '1';

  $c->render(text => 'denied');
  return undef;
};

get '/test1' => sub { shift->render } => 't1';

get '/test2' => sub { shift->render } => 't2';

app->start;

__DATA__

@@ index.html.ep
%= t h1 => 'login'

% if (flash('error')) {
  <h2 style="color:red"><%= flash('error') %></h2>
% }

%= form_for login => (method => 'post') => begin
username: <%= text_field 'username' %>
password: <%= text_field 'password' %>
%= submit_button 'log in'
%= end

@@ t1.html.ep
%= t h1 => 'test1'
<a href="<%= url_for('t2') %>">Link to test2</a>

@@ t2.html.ep
%= t h1 => 'This is test2'

<a href="<%= url_for('logout') %>">logout</a>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mojolicious 基本登录 的相关文章

  • SQL Server 登录错误:用户“NT AUTHORITY\SYSTEM”登录失败

    我创建了一个名为 schoolPool 的应用程序池并将其分配给我的 Web 应用程序 该池的标识已设置为 LocalSystem 当我尝试从应用程序内访问数据库 即打开 SQL 连接 时 我总是收到以下错误 Login failed fo
  • 为什么authentication:'plain'是rails中actionmailer的默认设置(使用gmail smtp)?

    我正在阅读Rails 的actionmailer 我的问题是关于所述的默认设置here http guides rubyonrails org action mailer basics html action mailer configur
  • ASP.NET Core 1.0 Web API 中的简单 JWT 身份验证

    我正在寻找最简单的方法来设置使用 JWT 在 ASP NET Core 又名 ASP NET 5 中进行身份验证的 Web API 服务器 这个项目 博客文章 http www codeproject com Articles 369657
  • 数据未正确加载到 Firebase 应用程序中

    我在 android studio 上使用 firebase 创建了一个应用程序 使用移动 otp 进行身份验证后会出现一个搜索视图 当用户在搜索视图上搜索时 它将过滤结果并转到回收器视图等 第一次启动活动 即身份验证后的家庭活动 应用程序
  • iPhone 应用程序拒绝 17.2:应用程序要求用户使用 Facebook 帐户登录

    我按照此处的本机 iOS 应用程序的登录说明进行操作https developers facebook com docs mobile ios build https developers facebook com docs mobile
  • 使用 https 的 Web 服务身份验证给出错误

    我编写了一个简单的 Web 服务 并使用摘要和 HTTPS 身份验证来保护它 我已经使用 Java 中的 keytool 生成了我的证书 当我通过创建 war 文件在 Tomcat 中部署 Web 服务时 axis 的欢迎页面正确显示 但是
  • 使用 ASP.Net 和 Ajax 的登录页面

    我正在尝试使用 html ajax 和 ASP NET 制作登录页面 数据确实传递给 ajax 函数 但是当我调试 asp 页面时 用户名和密码以 NULL 发送 该代码应该获取用户名和密码 然后返回用户 ID html页面 div Use
  • 与 parse-server 和 auth0 的自定义身份验证集成

    我想将 auth0 com 与开源解析服务器结合使用 我当前的方法是通过 iOS 的 Lock 库使用标准登录从 auth0 获取令牌 使用该令牌 我想在解析服务器上调用自定义身份验证方法 该方法检查令牌是否有效 如果有效则将登录用户 我的
  • docker登录 - 存储凭据时出错 - 写入权限错误

    我正在运行一个docker login命令作为 Bamboo 构建作业的一部分 命令文本通过以下方式获得aws ecr get login调用并在子 shell 中执行 该命令失败并显示Error saving credentials er
  • 我如何通过 Spring Security 创建 oauth 2 用户名密码流

    我正在尝试在 Spring Security 上实现 oauth2 用户名密码流程 但我找不到任何文档和示例代码 我正在检查 Sparklr 和 tonr insode oauth2 样本 我怎样才能实现它 oauth2 2 条腿 我如何禁
  • asp.net cookie、身份验证和会话超时

    我有一个使用表单身份验证的 asp net 网站 我在会话中保留一些信息 例如用户名 用户 ID 电子邮件等 我通过在身份验证 cookie 上设置较长的到期日期来允许用户保持登录网站的状态 因此 当用户仍处于身份验证状态时 会话过期的情况
  • 期待、互动,然后再次期待

    有几篇关于相同内容的帖子 但我仍然无法使我的期望脚本正常工作 我的目的是自动化一切 但保留用户输入的密码 所以脚本有 3 个部分 自动登录 给予用户交互以输入密码 将控制权交还给 Expect 脚本以继续工作 所以我有一个将生成的脚本 其中
  • App Engine 的 Google Cloud Storage 身份验证

    我们希望开始使用 Google Cloud Storage 作为用户上传文件的持久存储 不幸的是 我无法添加应用程序标识 应用程序 ID appspot gserviceaccount com 到我们的 团队 因为我们的团队基于 Googl
  • 使用带有十六进制字符串的 CryptoJS

    我想连接到蓝牙设备 仅通过十六进制字符串进行通信 我需要编码一个 16 字节值 因此我也期望一个 16 字节的值 在我的实现中 CryptoJS 总是返回更长的结果 根据文档 不需要 IV 所有 16 字节数据必须使用当前存储在设备中的客户
  • 使用 SimpleMembership 获取用户信息

    仍在尝试使用 MVC4 来掌握新的 SimpleMembership 我更改了模型以包含名字和姓氏 效果很好 我想更改登录时显示的信息 而不是在视图中使用 User Identity Name 我想做类似 User Identity For
  • Yii2 从 MySQL 中的表登录的分步指南

    我开始在 Yii2 中迈出第一步 到目前为止 我已经能够编写一个应用程序并将数据库中的表连接到它 就像我在 Yii1 中学到的那样 该表是contacts我的创建视图中的表单将数据发送到数据库 没有任何问题 问题是我只能在 Yii2 内置的
  • 如何在 ASP.NET MVC 5 中实现简单的身份验证

    我有一个带有 SQL Server 数据库的现有项目 带有数据库优先的 EF 工作单元和服务层 我需要添加 ASP NET MVC 项目并使用现有服务来验证用户身份 我发现了不同的复杂决定 我需要在身份中使用我的服务或在没有身份的情况下实现
  • Active Directory B2C 身份验证以及在数据库中创建/存储用户 ID

    我正在制作一个移动应用程序 并希望使用 AD B2C 内容来处理用户的身份验证 我需要将它们的数据存储在 SQL DB 中 该数据库也位于 Azure 上 我打算让我的应用程序使用 REST 与我要编写的一些函数进行通信 然后与数据库后端进
  • JWT 中的注销不起作用

    我是 Laravel 的新手 我安装了 JWT 并登录 所以它工作并生成了一个令牌 当我在邮递员中注销时它返回 true 但一次又一次它返回 true 和 auth gt 用户 注销后始终返回用户 这是我的代码 public functio
  • 在 SignOut() 之后使用浏览器的后退按钮允许访问安全页面 (ASP.NET MVC)

    我有一个 MVC 应用程序 它使用 Authorize 来保护私有位 当我选择 SignOut URL 时 它会将我注销 但如果我点击浏览器上的后退按钮 它会转到安全页面 甚至允许我使用该表单 该操作发生 然后显示我已退出 问题是它执行安全

随机推荐

  • 为什么 Java 枚举不可克隆?

    现在改变问题已经太晚了 但更准确的是问 为什么clone 不允许单例 Acopy 方法会更方便 Java 中的枚举无法克隆有什么原因吗 该手册指出 这保证了枚举永远不会被克隆 这是保持其 单例 状态所必需的 但是返回实例本身也将保留其状态
  • 比较两张地图

    我有两张地图声明为Map
  • 如何使用R包Quadprog求解SVM?

    我想知道实现 Quadprog 来解决二次规划的正确方法是什么 我有以下问题 从互联网上摘录 并且也在查看以下内容http cbio ensmp fr thocking mines course 2011 04 01 svm svm qp
  • mac os x 上的 eclipse JNI_CreateJavaVM 错误

    我使用的是 mac os x 10 8 2 我已经安装了java 1 7 然后收回 因为我无法通过xcode发送iphone应用程序 现在java 1 6已安装 ysnky java 版本 java版本 1 6 0 37 Java TM S
  • 为什么我的 vim 命令行路径与 shell 路径不同?

    e g echo PATH usr local bin usr bin bin usr sbin sbin usr local bin bin bin usr local Cellar python3 3 2 3 bin vim echo
  • C 中的 usleep() 是否实现为忙等待?

    我正在构建一个多线程应用程序pthreads并且需要一个线程来定期检查一些东西 在此期间 该线程不应使用任何 CPU 这可能吗 usleep Is usleep 不忙等待吗 或者有更好的解决方案吗 功能usleep已从 SUSv4 中删除
  • Web API 中的依赖注入验证

    在 MVC 中 我可以创建一个可以采用依赖项的模型验证器 我通常使用 FluentValidation 来实现这一点 例如 这使我可以检查帐户注册是否有电子邮件地址未被使用 注意 这是一个简化的示例 public class Registe
  • 为什么 FLAG_ACTIVITY_CLEAR_TOP 不起作用?

    正如标题所说 为什么intent addFlags Intent FLAG ACTIVITY CLEAR TOP or intent setFlags Intent FLAG ACTIVITY CLEAR TOP 行不通 我有 3 项活动
  • 使用shiny DT包中的选择扩展附带的全选按钮仅选择过滤的行

    我试图使用闪亮的 DT 包中的选择扩展附带的全选按钮来仅选择过滤的行 但它会选择所有行 这是闪亮的样本app https radhikesh shinyapps io selectextension 以下是该应用程序的可重现代码 libra
  • 同时交叉和添加列表元素的 Python 方式

    我有3个清单 a b and c 每个列表都包含 3 个数字的元组 下面是一个输入示例 a 1 2 4 1 7 8 1 5 4 3 6 7 b 1 2 5 1 9 3 1 0 3 3 6 8 c 2 6 3 2 4 9 2 8 5 1 2
  • Selenium webdriver 和多语言

    我使用selenium webdriver java 例如 当我想通过 xpath 获取一些数据 文本时 driver findElement By xpath table 3 tbody tr td table 1 tr 1 td 1 g
  • Django:使用电子邮件作为 USERNAME_FIELD 是否需要扩展 AbstractBaseUser?

    与许多其他人一样 我正在尝试将 Django 应用程序配置为使用电子邮件作为用户名字段 我有一些现有的用户帐户 已成功迁移到自定义用户模型 尽管现在自定义模型与 Django 用户模型相同 accounts models py from d
  • jquery img 选择

    我有一个 h4 里面有一个这样的 img 我将点击功能绑定到 h4 这效果很好 但我无法选择其中的img 我想选择 img 以便用 attr src replace up down 重新放置 src attr h4 class collap
  • UILabel中心内容

    这是我的代码 UILabel myLabel myLabel UILabel alloc initWithFrame CGRectMake 20 0 300 480 myLabel lineBreakMode UILineBreakMode
  • mod_rewrite 和 mod_userdir 的问题

    我正在尝试获取其他人组装的正在运行的网站的本地副本 该网站已部署并正常运行 我正在尝试在我的 public html 目录下设置开发版本 该站点使用 mod rewrite 通过执行各种初始化步骤的网关脚本重定向所有流量 我有一个奇怪的问题
  • Altair:如何在烛台图(即:分层图)上使用区间选择

    我正在尝试复制以下堆叠图表 可以通过与底部图表交互来选择顶部图表的域 但使用烛台图 这是一个分层图表 example code for below is here https altair viz github io gallery int
  • 函数向全局变量返回 2 个值

    鉴于这个帖子 https stackoverflow com questions 61217589 set 2 series at once我想问为什么下面的脚本适用于 a b 但不适合 c d 找不到任何文档来解释为什么这不起作用 此示例
  • 如何检查日期(来自日期选择器)是否在其他两个日期之间?目标-c

    我正在尝试从 UIDatePicker MM dd 格式 获取日期并检查它是否在其他两个日期的范围内 我尝试过很多不同的方式 但我想我的想法已经走得太远了 有人可以帮我做得尽可能简单吗 这是我最后一次尝试的代码 NSDateFormatte
  • 如何在没有窗口的情况下使用 Swift 检测 macOS 上的 Caps Lock 状态?

    我努力了KeyDown and NSEvent 但他们需要一个NSWindow对象处于活动状态 我希望我可以在状态栏上放置一个应用程序 并在按下时提醒用户CapsLock 即使用户在任何其他应用程序中 我的应用程序创意没有用于设置或其他任何
  • Mojolicious 基本登录

    我正在 Mojolicious 中寻找身份验证 我有 2 个页面 momcorp1 和 momcorp2 但我不能 在页面之间 有人知道如何做到这一点 我正在阅读有关 under 的内容 但我不知道如何做到这一点 另一种形式是使用 Mojo