api guard,attempt已解决

路由

Route::post('login','Api\UserController@login')->name('login');

控制器

public function login(LoginRequest $request)
    {
        $validated = $request->validated();
        $data = $this->userModels->getRow($validated['username']);
        if ($data['user_active'] == 0 && $data['status'] != 0){
            return Response::json(['state'=>403,'msg'=>'等待管理员审核通过后再进行登录','data'=>$validated]);
        }
        if (1){
//            Auth::attempt($validated)
  dd(Auth::guard('api')->attempt($validated));
            return Response::json(['state'=>200,'msg'=>'登录成功','data'=>Auth::user()]);
        }
        return Response::json(['state'=>403,'msg'=>'账号密码不匹配','data'=>$validated]);
    }

auth.php

'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],
'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
        'hash' => false,
    ],
],
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    // 'users' => [
     //     'driver' => 'database',
     //     'table' => 'users', 
     //],
 ],
ShiKi
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

api guard 是没有 attempt 这个方法的

3年前 评论
讨论数量: 5

api guard 是没有 attempt 这个方法的

3年前 评论

API 认证《Laravel 6 中文文档》 可以看看这个,就是一个随机的字符串保存到数据库

3年前 评论

建议用jwt 或者passport

3年前 评论
陈先生

JWT吧 好多了 ,也不要用att 用login 先查询出来用户,确认用户在数据库 然后直接丢给guard ,这一手操作还不是美滋滋

Auth::guard('api')->login($member);
3年前 评论

有很多别的办法可以验证用户名和密码是否正确,比如once

3年前 评论

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