更换为小写
winter-ice
4年前
修改理由:
相关信息:
- 类型:文档文章
- 文章: Sanctum 轻量级 API 认证
- 文档: 《Laravel 7 中文文档(7.x)》
此投稿已在 4年前 合并。
内容修改:
Old | New | Differences |
---|---|---|
126 | 126 | |
127 | 127 | 为了保护路由,所有进来的请求都必须进行认证,应该将 `Sanctum` 认证守卫附加到 `routes/api.php` 的API路由里。如果一个请求是来自第三方的请求,这个守卫会确保进来的请求既是一个你的SPA应用的有状态的已认证请求,也是一个包含了有效令牌头的已认证请求: |
128 | 128 | |
129 | Route::middleware('auth: | |
129 | Route::middleware('auth:sanctum')->get('/user', function (Request $request) { | |
130 | 130 | return $request->user(); |
131 | 131 | }); |
132 | 132 | … | … |
202 | 202 | |
203 | 203 | 要对单页面应用进行身份验证,你的单页面应用的登录页面应首先向`/Sanctum/csrf-cookie`路由发出请求,以初始化应用程序的CSRF保护: |
204 | 204 | |
205 | axios.get('/ | |
205 | axios.get('/sanctum/csrf-cookie').then(response => { | |
206 | 206 | // 登录... |
207 | 207 | }); |
208 | 208 | … | … |
220 | 220 | |
221 | 221 | 为了保护路由,因此必须对所有传入的请求进行身份验证,你应该在`routes/api.php`文件中为你的API路由附加`Sanctum` 授权看守器。如果请求来自你的单页面应用,此看守器会确保传入的请求被验证为有状态的已验证请求,如果请求来自第三方,它将使请求包含有效的API令牌头: |
222 | 222 | |
223 | Route::middleware('auth: | |
223 | Route::middleware('auth:sanctum')->get('/user', function (Request $request) { | |
224 | 224 | return $request->user(); |
225 | 225 | }); |
226 | 226 | … | … |
232 | 232 | |
233 | 233 | 如果你的单页面应用需要通过[private / presence broadcast channels](/docs/{{version}}/broadcasting#authorizing-channels)进行身份认证,你需要在你的`routes/api.php`文件中调用`Broadcast::routes`方法: |
234 | 234 | |
235 | Broadcast::routes(['middleware' => ['auth: | |
235 | Broadcast::routes(['middleware' => ['auth:sanctum']]); | |
236 | 236 | |
237 | 237 | 接下来, 为了使Pusher的授权请求成功, 你需要在初始化[Laravel Echo](/docs/{{version}}/broadcasting#installing-laravel-echo)时提供自定义的Pusher`authorizer`。这可以让你的应用程序将Pusher配置为 [为了跨域请求正确配置的](#cors-and-cookies)`axios`实例: |
238 | 238 | … | … |
278 | 278 | use Illuminate\Support\Facades\Hash; |
279 | 279 | use Illuminate\Validation\ValidationException; |
280 | 280 | |
281 | Route::post('/ | |
281 | Route::post('/sanctum/token', function (Request $request) { | |
282 | 282 | $request->validate([ |
283 | 283 | 'email' => 'required|email', |
284 | 284 | 'password' => 'required', | … | … |
305 | 305 | |
306 | 306 | 如前所述,您需要保护路由,因此必须通过在路由上附加`Sanctum`身份验证看守器来对所有传入请求进行身份验证。一般来说,你会将此看守器附加到`routes/api.php`文件中定义的路由上: |
307 | 307 | |
308 | Route::middleware('auth: | |
308 | Route::middleware('auth:sanctum')->get('/user', function (Request $request) { | |
309 | 309 | return $request->user(); |
310 | 310 | }); |
311 | 311 |