问题:attempt 方法是自动对password 做哈希运算,如果是不需要做哈希运算验证,怎么处理?谢谢~

大家好,是接入第三方的登录,密码加密是第三方做好的方法,已经存在数据库里边了。
现在是是想attempt 直接验证登录,不需要做哈希处理了,怎么解决?
谢谢大家~

attempt 方法的每个参数是一个关联数组。数组值用于在数据库中查找用户。在上面的例子中,将通过 email 列的值查找用户。如果找到该用户,将用存储在数据库中的哈希密码与数组中的 password 值做比较。不需要对 password 做哈希运算,框架在与数据库中的哈希密码做比较前自动对此值做哈希运算。如果两个哈希值匹配,将为该用户建立验证通过的 session。

 public function authenticate(Request $request)
    {
        $credentials = $request->only('email', 'password');

        if (Auth::attempt($credentials)) {
            // 通过认证..
            return redirect()->intended('dashboard');
        }
    }
什么时候开始都不晚,学到老
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

博客:将 Laravel 用户密码加密方式修改为 md5+salt 方式 自定义加密方式?然后自定义为不加密是否可行 :joy:

3年前 评论
芝麻开门 (楼主) 3年前
讨论数量: 4
3年前 评论
芝麻开门 (楼主) 3年前
largezhou (作者) 3年前
芝麻开门 (楼主) 3年前

刚好最近写的一个新项目有涉及到这块的逻辑:

public function login(Request $request)
{
    $this->validateLogin($request);
    $credentials = $request->only([$this->username(), 'password']);

    $provider = Auth::getProvider();
    $user = $provider->retrieveByCredentials($credentials);
    if (is_null($user)) {
        return failed('用户不存在', 404);
    }

    // 主要的验证逻辑在这里,这里替换成你想要的逻辑
    if ($provider->validateCredentials($user, $credentials) == false) {
        return failed('认证失败,用户名或密码不正确', 401);
    }

    try {
        if (!$token = $this->guard()->login($user)) {
            return failed('认证失败', 401);
        }
    } catch (JWTException $exception) {
        return internalError('未知错误导致登录失败');
    }

    return success([
        'id' => $user->getAuthIdentifier(),
        'name' => $user->name,
        'email' => $user->email,
        'role_id' => $user->role_id,
        'token_type' => 'Bearer',
        'access_token' => $token,
        'expires_in' => config('jwt.ttl') * 60,
    ]);
}
3年前 评论
芝麻开门 (楼主) 3年前

博客:将 Laravel 用户密码加密方式修改为 md5+salt 方式 自定义加密方式?然后自定义为不加密是否可行 :joy:

3年前 评论
芝麻开门 (楼主) 3年前

你参考那么多干嘛啊,第一个回答就是正确的,你自己调用login就好

3年前 评论
芝麻开门 (楼主) 3年前
Siam (作者) 3年前
芝麻开门 (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!