Laravel Passport对接NuxtJS的.env配置与服务端请求接收配置问题
关于Nuxt项目.env文件的疑问
你需要手动创建.env文件,Nuxt 2、Nuxt 3原生都支持根目录下的.env文件加载环境变量,教程中的cp .env.example .env命令作用是把示例配置复制为实际生效的配置文件,如果你项目里没有示例文件也没关系,直接在Nuxt项目根目录新建空白的.env文件,把以下内容复制进去填入对应值即可:
LARAVEL_ENDPOINT='http://127.0.0.1:8000' PASSPORT_PASSWORD_GRANT_ID= PASSPORT_PASSWORD_GRANT_SECRET=
三个配置项的取值规则:
LARAVEL_ENDPOINT填Laravel服务的实际访问地址- 后两项是Laravel端创建密码授权客户端后生成的凭证,在Laravel项目根目录执行
php artisan passport:client --password按照提示操作即可获得,提示输入回调地址时可随意填写,密码授权模式不需要用到回调地址。
Laravel服务端必要配置
教程没有单独提是因为默认用户已经完成了Passport的基础初始化,你需要按以下顺序完成服务端配置才能正常接收Nuxt的请求:
- 首先完成Passport基础安装:在Laravel项目根目录执行
composer require laravel/passport安装扩展,再执行php artisan passport:install完成初始化、生成加密密钥 - 配置认证驱动:打开
config/auth.php,将api guard的driver修改为passport'guards' => [ 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ], - 配置跨域规则:打开
config/cors.php,将Nuxt的访问地址加入allowed_origins列表,开发阶段可临时设置为*,生产环境必须填写实际的前端域名;同时确保你需要调用的接口路径已经加入paths列表,比如填api/*就能匹配所有/api开头的接口 - 接口路由配置:所有需要登录态才能访问的接口,必须放在
auth:api中间件组下,示例:Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); });
内容的提问来源于stack exchange,提问作者Dr.Noob
相关产品推荐
相关产品推荐

