当前位置: 首页 > news >正文

闸北企业网站制作/百度seo如何优化关键词

闸北企业网站制作,百度seo如何优化关键词,酒店预订网站建设,现在大家做电商网站用什么源码Laravel 12 实现 API 登录令牌认证 在 Laravel 12 中实现基于令牌(Token)的 API 认证,可以使用 Laravel Sanctum 或 Laravel Passport。以下是两种方式的实现方法: 方法一:使用 Laravel Sanctum (轻量级 API 认证) 1. 安装 Sanctum compo…

Laravel 12 实现 API 登录令牌认证

在 Laravel 12 中实现基于令牌(Token)的 API 认证,可以使用 Laravel Sanctum 或 Laravel Passport。以下是两种方式的实现方法:

方法一:使用 Laravel Sanctum (轻量级 API 认证)

1. 安装 Sanctum

composer require laravel/sanctum

2. 发布 Sanctum 迁移和配置文件

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

3. 运行数据库迁移

php artisan migrate

4. 配置 Sanctum

在 config/sanctum.php 中配置(通常保持默认即可)

5. 修改用户模型

在 app/Models/User.php 中添加 HasApiTokens trait:

use Laravel\Sanctum\HasApiTokens;class User extends Authenticatable
{use HasApiTokens, HasFactory, Notifiable;// ...
}

6. 创建认证路由

在 routes/api.php 中添加:

use App\Http\Controllers\AuthController;Route::post('/login', [AuthController::class, 'login']);
Route::middleware('auth:sanctum')->post('/logout', [AuthController::class, 'logout']);
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {return $request->user();
});

7. 创建认证控制器

php artisan make:controller AuthController

在 app/Http/Controllers/AuthController.php 中:

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\User;class AuthController extends Controller
{public function login(Request $request){if (!Auth::attempt($request->only('email', 'password'))) {return response()->json(['message' => 'Invalid login details'], 401);}$user = User::where('email', $request['email'])->firstOrFail();$token = $user->createToken('auth_token')->plainTextToken;return response()->json(['access_token' => $token,'token_type' => 'Bearer',]);}public function logout(Request $request){$request->user()->currentAccessToken()->delete();return response()->json(['message' => 'Successfully logged out']);}
}

8. 测试 API

使用 Postman 或 cURL 测试:

登录请求:‌

curl --location --request POST 'http://your-app.test/api/login' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{"email": "user@example.com","password": "password"
}'

获取用户信息:‌

curl --location --request GET 'http://your-app.test/api/user' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_TOKEN_HERE'

方法二:使用 Laravel Passport (OAuth2 全功能实现)

1. 安装 Passport

composer require laravel/passport

2. 运行数据库迁移

php artisan migrate

3. 安装 Passport

php artisan passport:install

4. 配置 Passport

在 app/Models/User.php 中添加:

use Laravel\Passport\HasApiTokens;class User extends Authenticatable
{use HasApiTokens, HasFactory, Notifiable;// ...
}

在 config/auth.php 中设置 API 驱动:

'guards' => ['api' => ['driver' => 'passport','provider' => 'users',],
],

5. 创建认证路由

在 routes/api.php 中添加:

use App\Http\Controllers\AuthController;Route::post('/login', [AuthController::class, 'login']);
Route::middleware('auth:api')->post('/logout', [AuthController::class, 'logout']);
Route::middleware('auth:api')->get('/user', function (Request $request) {return $request->user();
});

6. 创建认证控制器

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\User;class AuthController extends Controller
{public function login(Request $request){$credentials = $request->only('email', 'password');if (!Auth::attempt($credentials)) {return response()->json(['message' => 'Unauthorized'], 401);}$user = $request->user();$tokenResult = $user->createToken('Personal Access Token');$token = $tokenResult->accessToken;return response()->json(['access_token' => $token,'token_type' => 'Bearer','expires_at' => $tokenResult->token->expires_at->toDateTimeString()]);}public function logout(Request $request){$request->user()->token()->revoke();return response()->json(['message' => 'Successfully logged out']);}
}

令牌刷新机制(可选)

如果需要实现令牌刷新功能,可以添加以下路由和方法:

Route::post('/refresh', [AuthController::class, 'refresh']);// 在 AuthController 中添加
public function refresh(Request $request)
{$user = $request->user();$user->token()->revoke();$tokenResult = $user->createToken('Personal Access Token');return response()->json(['access_token' => $tokenResult->accessToken,'token_type' => 'Bearer','expires_at' => $tokenResult->token->expires_at->toDateTimeString()]);
}

选择建议

Sanctum‌:适合简单的 SPA 或移动应用认证,轻量级

Passport‌:适合需要完整 OAuth2 功能的复杂应用

希望能帮助你在 Laravel 12 中成功实现基于令牌的认证系统!

http://www.cadmedia.cn/news/166.html

相关文章:

  • 做网站带源码软件-dw/新闻联播俄罗斯与乌克兰
  • 手机快速注册/专业搜索引擎seo服务商
  • 福建网站优化/微信管理系统平台
  • 成都商城网站制作/网络媒体
  • 建设银行互联网网站/网页设计与制作教程
  • 凡科网站建设好/广东又出现新病毒
  • 湖北做网站平台哪家好/百度seo霸屏软件
  • 做空比特币网站/谷歌商店下载官方正版
  • 一般网站开发公司/友情链接怎么购买
  • 广州工程公司有哪些/爱站网seo
  • 网页制作简单/网站seo策划方案实例
  • 网上兼职网站哪个好/搜索引擎营销的案例有哪些
  • 长治网站制作一般需要多少钱/2019网站seo
  • 网站推广一般在哪个网做/成人专业技能培训机构
  • 图片网站建设/优秀营销软文范例500字
  • 校园网站建设计划书/友情链接是什么意思
  • 四川工程信息网官网/seo批量建站
  • 安徽省工程建设信息网官方网站/2022年新闻摘抄简短
  • 日本真人做爰视频免费网站/厦门seo俱乐部
  • 网站服务器 2核/东莞疫情最新情况
  • 企业网站价格/查关键词排名软件
  • 黄岛网站建设/临安网站seo
  • 鞍山做网站公司/厨师培训
  • 兰州手机网站制作公司哪家好/网站建设对企业品牌价值提升的影响
  • 网站建设为了什么/seo 0xu
  • wordpress建站以后/常德政府网站市民留言
  • 山西太原网站制作/seo自学网
  • 网页设计作品网站/百度快速收录seo工具软件
  • 魏公村网站建设/网站建设报价单模板
  • wordpress 搜索 限制/如何提高网站排名seo