【发布时间】:2016-08-30 10:28:47
【问题描述】:
有时,当我长时间不采取行动时,或者当我尝试直接访问特定页面时,会显示“需要身份验证”弹出窗口,询问我的登录名和密码。
但是即使我填写了必填字段,身份验证也没有完成,刷新只是显示“未授权”。
这个弹出窗口似乎没有调用我的登录方法。
您能告诉我凭据应该如何传输到我的用户登录控制器吗?
问候,
编辑我的登录表单
<div class="container-fluid">
<br/>
<div class="container-fluid col-md-4 col-md-offset-4">
<h1>Se connecter</h1>
<div class="row">
<div class="col-md-12">
<?= $this->FormB->create(); ?>
<div class="panel panel-default">
<div class="panel-heading">
<h2><?= __("Saisissez vos identifiants") ?></h2>
</div>
<div class="panel-body">
<?= $this->FormB->input('username', ['label' => __("Nom d'utilisateur :"), 'placeholder' => __("Nom d'utilisateur")]); ?>
<?= $this->FormB->input('password', ['label' => __("Mot de passe :"), 'placeholder' => __("Mot de passe")]); ?>
<p><em><?= $this->Html->link(__("Mot de passe oublié ?"), ['action' => 'forgotPassword']); ?></em></p>
<br/>
<?php if ($activeLink == 1): ?>
<p><em><?= $this->Html->link(__("Renvoyer l'email d'activation ?"), ['controller' => 'Users', 'action' => 'resend', 'username' => $username]); ?></em></p>
<br/>
<?php endif ?>
</div>
</div>
<div>
<?= $this->Form->button(isset($btnlabel) ? __("$btnlabel") : __("Enregistrer"), ["class" => "btn btn-primary btn-block"]) ?>
</div>
<?= $this->FormB->end() ?>
</div>
</div>
</div>
</div>
** EDIT ** 当我在浏览器打开的弹出窗口中输入我的登录名/密码时,Cake 会生成以下错误
2016-03-24 16:53:11 Error: [Cake\Network\Exception\UnauthorizedException] Unauthorized
Request URL: /pros/Owners/account
Stack Trace:
#0 /home/MyApp/vendor/cakephp/cakephp/src/Controller/Component/AuthComponent.php(359): Cake\Auth\BasicAuthenticate->unauthenticated(Object(Cake\Network\Request), Object(Cake\Network\Response))
#1 /home/MyApp/vendor/cakephp/cakephp/src/Controller/Component/AuthComponent.php(296): Cake\Controller\Component\AuthComponent->_unauthenticated(Object(App\Controller\Pros\OwnersController))
#2 /home/MyApp/vendor/cakephp/cakephp/src/Controller/Component/AuthComponent.php(258): Cake\Controller\Component\AuthComponent->authCheck(Object(Cake\Event\Event))
#3 /home/MyApp/vendor/cakephp/cakephp/src/Event/EventManager.php(385): Cake\Controller\Component\AuthComponent->startup(Object(Cake\Event\Event))
#4 /home/MyApp/vendor/cakephp/cakephp/src/Event/EventManager.php(355): Cake\Event\EventManager->_callListener(Array, Object(Cake\Event\Event))
#5 /home/MyApp/vendor/cakephp/cakephp/src/Event/EventDispatcherTrait.php(78): Cake\Event\EventManager->dispatch(Object(Cake\Event\Event))
#6 /home/MyApp/vendor/cakephp/cakephp/src/Controller/Controller.php(495): Cake\Controller\Controller->dispatchEvent('Controller.star...')
#7 /home/MyApp/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(109): Cake\Controller\Controller->startupProcess()
#8 /home/MyApp/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(87): Cake\Routing\Dispatcher->_invoke(Object(App\Controller\Pros\OwnersController))
#9 /home/MyApp/webroot/index.php(37): Cake\Routing\Dispatcher->dispatch(Object(Cake\Network\Request), Object(Cake\Network\Response))
#10 {main}
那么我应该如何拦截这个身份验证尝试呢?
【问题讨论】:
-
能否请您发布登录表单
-
@dav Hi Dav,完成了。
-
如果您的猜测是正确的,但它不会采取正确的行动,您可以尝试输入此
$this->FormB->create('Users', array( 'url' => '/users/your_login_action'))- 因此提供提交表单的确切网址 -
@dav,恐怕听不懂你。我的登录完美适用于我的登录页面。当我尝试访问特定 url 并且 Firefox/Chrome 打开一个弹出窗口要求我登录时,就会出现我的问题。在那种特定情况下,我不知道应该如何处理这个弹出窗口。
-
@dav,好的,谢谢所以我现在明白我的问题了
标签: cakephp-3.x