亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Symfony 身份驗證總是返回“Invalid Credentials”

Symfony 身份驗證總是返回“Invalid Credentials”

PHP
繁星coding 2022-07-09 18:22:28
我正在嘗試使用 Symfony 實現身份驗證。不幸的是,無論我嘗試什么,我都會一遍又一遍地收到錯誤“ Invalid Credentials ”。我讀過其他文章,但沒有一篇派上用場。這可能是什么原因,我該如何解決?我嘗試修改 getUsername() 以返回電子郵件而不是用戶名,但它沒有用。我檢查了我的注冊過程,確定哈希是否正確,將 password_verify 的結果轉儲為純密碼和來自數據庫(這是真的)等。我相信我做錯了什么。安全性.yml:security:    role_hierarchy:    encoders:        AppBundle\Entity\User: bcrypt    # https://symfony.com/doc/current/security.html#b-configuring-how-users-are-loaded    providers:        db_provider:            entity:                class: AppBundle\Entity\User                property: email    firewalls:        dev:            pattern: ^/(_(profiler|wdt)|css|images|js)/            security: false        main:            pattern: ^/            provider: db_provider            anonymous: ~            form_login:                username_parameter: _email                check_path: security_login                login_path: security_login                default_target_path: homepage                always_use_default_target_path: true                csrf_token_generator: security.csrf.token_manager            logout:                path: security_logout                target: security_login    access_control:        # this is a catch-all for the admin area        # addition security lices in the controllers        # - { path: '^/(%locale%)/admin', roles: ROLE_ADMIN        # - { path: '^/ucp', roles: [IS_AUTHENTICATED_FULLY] }login.html.twig<form name="authenticate" action="{{ path('security_login') }}" method="post" class="loginForm" id="loginForm">    <div class="form-group">        <input type="email" class="form-control" name="_email" value="{{ last_username }}" id="email" placeholder="Имейл адрес"/>    </div>    <div class="form-group">        <input type="password" class="form-control" name=_password" id="password" placeholder="Парола"/>    </div>    <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">    <div class="text-center"><button type="submit" id="loginButton">Log in</button></div></form>
查看完整描述

2 回答

?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

哦,天哪,我已經解決了……不幸的是,這是一個令人尷尬的錯誤……我剛剛錯過了密碼名稱屬性的第一個引號,它是 name=_password”



查看完整回答
反對 回復 2022-07-09
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

您可以使用UserPasswordEncoderInterface清楚地散列您的密碼,例如:


.....

use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;

......


class UserService implements UserServiceInterface

{

    private $userPasswordEncoderInterface;

    private $entityManager;


    public function __construct(

      UserPasswordEncoderInterface $userPasswordEncoderInterface,

      EntityManagerInterface $entityManager)

    {

        $this->userPasswordEncoderInterface = $userPasswordEncoderInterface;

        $this->entityManager = $entityManager;

    }


    public function save(User $user): Response

    {

        $passwordHash = $this->userPasswordEncoderInterface->encodePassword($user, $user->getPassword());

        $user->setPassword($passwordHash);


        $this->entityManager->persist($user);

        $this->entityManager->flush();


        return new Response('password encoded');

    }

}


查看完整回答
反對 回復 2022-07-09
  • 2 回答
  • 0 關注
  • 960 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號