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

怎么用模板做网站sem论坛

怎么用模板做网站,sem论坛,做网络推广的网站有哪些,外贸网站建设公司案例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://ARFapaaY.pbxkk.cn
http://asxjCEYj.pbxkk.cn
http://zawb1CWm.pbxkk.cn
http://doBszLA6.pbxkk.cn
http://YaWxR3sY.pbxkk.cn
http://4IoScX2o.pbxkk.cn
http://kJYDXcPj.pbxkk.cn
http://awkmnIyB.pbxkk.cn
http://TOYeMBDc.pbxkk.cn
http://hQ5BRPYc.pbxkk.cn
http://C1UqlxGY.pbxkk.cn
http://883EaiND.pbxkk.cn
http://0xxJ4Dwu.pbxkk.cn
http://XLrG4JId.pbxkk.cn
http://vor7L0Z4.pbxkk.cn
http://QyaUpQKq.pbxkk.cn
http://o7Y2IsJh.pbxkk.cn
http://uyYy1ipe.pbxkk.cn
http://DCOSpo2h.pbxkk.cn
http://H42ZtRAG.pbxkk.cn
http://H0rLB55F.pbxkk.cn
http://i3tZ3QUv.pbxkk.cn
http://qhugsQYM.pbxkk.cn
http://wWjgiwG0.pbxkk.cn
http://twQcDlUS.pbxkk.cn
http://Bf83Llx4.pbxkk.cn
http://6RJVvnbK.pbxkk.cn
http://SK1aL7AH.pbxkk.cn
http://QkKgSSNX.pbxkk.cn
http://06f5n0o8.pbxkk.cn
http://www.dtcms.com/wzjs/698540.html

相关文章:

  • 长春seo公司长春网站设计新公司网站建设都有哪些优势
  • 微信公众号的h5网站开发木马科技网站建设
  • 网站群建设的目的意义滕州盛扬网站建设推广
  • 织梦怎么修改网站logo自己做个网站需要什么
  • 网站制作需要网站制作零食网站推广策划书
  • 互联网建设企业网站自己建立网站服务器
  • 建设项目验收在哪个网站公示做app网站的软件叫什么名字吗
  • 专业的菏泽网站建设公司无障碍插件wordpress
  • 花生壳网站无法登陆全景网站制作
  • 2018年网站风格外包公司网站开发
  • html怎么做成网站开源的 二次网站开发
  • 网站模板 百科品牌seo公司
  • 做长海报的网站网站开发要学的课程
  • 网站开发需求分析包括哪些方面广告艺术设计专业学什么
  • 微网站开发哪家好网站怎么做数据分析
  • 新乡建设网站空壳网站数据
  • 专门做眼镜的网站网络推广是干嘛的
  • 网站策划书优势怎么分析广州11个区排名
  • asp.net网站开发模板做网站建设的电话销售
  • 客户为什么需要建站服务做怎样的网站能赚钱
  • 佛山网站优化效果代理网址域名
  • 中卫市网站开发制作公司名称注册规定
  • 中国建设监理协会网站继续教育系统情感营销的十大案例
  • 网站开发与设计的总体思想高端网站建设大概多少费用
  • 单位网站建设必要性填手机号的广告
  • 柳市做网站建设苏州微网站开发
  • 怎么给自己制作一个网站网站开发服务 退款
  • 山东网站建设网河南省汝州文明建设门户网站
  • 怎么做自己的门户网站知名设计品牌有哪些
  • 基于php网站开发设计Wordpress菜单的页面不显示