去除多余的空格.
修改理由:
相关信息:
- 类型:文档文章
- 文章: Sanctum 轻量级 API 认证
- 文档: 《Laravel 7 中文文档(7.x)》
此投稿已在 5年前 合并。
内容修改:
| Old | New | Differences |
|---|---|---|
| 1 | ||
| 2 | 1 | # Laravel Airlock |
| 3 | 2 | |
| 4 | 3 | - [介绍](#introduction) | … | … |
| 34 | 33 | |
| 35 | 34 | Laravel Airlock 的这个特性是通过将用户 API 令牌存储在单个数据库表中,并通过包含了有效 API 令牌的`Authorization`标头对传入请求进行身份验证而实现的。 |
| 36 | 35 | |
| 37 | ||
| 38 | ||
| 36 | ||
| 37 | ||
| 39 | 38 | |
| 40 | 39 | #### SPA 身份验证 |
| 41 | 40 | … | … |
| 71 | 70 | \Illuminate\Routing\Middleware\SubstituteBindings::class, |
| 72 | 71 | ], |
| 73 | 72 | |
| 74 | ||
| 75 | ||
| 73 | ||
| 74 | ||
| 76 | 75 | <a name="api-token-authentication"></a> |
| 77 | 76 | ## API 令牌认证 |
| 78 | 77 | … | … |
| 104 | 103 | // |
| 105 | 104 | } |
| 106 | 105 | |
| 107 | ||
| 108 | ||
| 106 | ||
| 107 | ||
| 109 | 108 | |
| 110 | 109 | <a name="token-abilities"></a> |
| 111 | 110 | ### 令牌能力 | … | … |
| 131 | 130 | return $request->user(); |
| 132 | 131 | }); |
| 133 | 132 | |
| 134 | ||
| 135 | ||
| 133 | ||
| 134 | ||
| 136 | 135 | |
| 137 | 136 | <a name="revoking-tokens"></a> |
| 138 | 137 | ### 撤销令牌 | … | … |
| 154 | 153 | |
| 155 | 154 | 对于这个特性,Airlock不使用其他任何类型的令牌。相反,Airlock 使用的是Laravel内置的基于cookie的session认证服务。这带来了诸多好处,比如CSRF保护,以及防止通过XSS泄漏身份验证凭据。Airlock 只会在传入的请求来自于你自己的SPA前端时尝试使用cookie进行身份验证。 |
| 156 | 155 | |
| 157 | ||
| 158 | ||
| 156 | ||
| 157 | ||
| 159 | 158 | |
| 160 | 159 | <a name="spa-configuration"></a> |
| 161 | 160 | ### 配置 | … | … |
| 166 | 165 | |
| 167 | 166 | #### Airlock 中间件 |
| 168 | 167 | |
| 169 | 接下来,你应该将Airlock的中间件添加到`app | |
| 168 | 接下来,你应该将Airlock的中间件添加到`app/Http/Kernel.php`文件中的`api`中间件组中。该中间件负责确保来自单页面应用的传入请求可以使用Laravel的会话cookie进行身份验证,同时仍允许来自第三方或移动应用程序的请求使用API令牌进行身份验证: | |
| 170 | 169 | |
| 171 | 170 | use Laravel\Airlock\Http\Middleware\EnsureFrontendRequestsAreStateful; |
| 172 | 171 | … | … |
| 176 | 175 | \Illuminate\Routing\Middleware\SubstituteBindings::class, |
| 177 | 176 | ], |
| 178 | 177 | |
| 179 | ||
| 180 | ||
| 178 | ||
| 179 | ||
| 181 | 180 | |
| 182 | 181 | <a name="cors-and-cookies"></a> |
| 183 | 182 | #### CORS & Cookies | … | … |
| 186 | 185 | |
| 187 | 186 | 你应该确保应用程序的CORS配置返回的`Access-Control-Allow-Credentials`标头的值为`True`。你可以在`cors`配置文件中配置应用程序的CORS设置。 |
| 188 | 187 | |
| 189 | 另外,你应该在全局`axios`实例上启用`withCredentials`选项。通常,这应该在你的`resources | |
| 188 | 另外,你应该在全局`axios`实例上启用`withCredentials`选项。通常,这应该在你的`resources/js/bootstrap.js`文件中执行: | |
| 190 | 189 | |
| 191 | 190 | axios.defaults.withCredentials = true; |
| 192 | 191 | … | … |
| 195 | 194 | |
| 196 | 195 | 'domain' => '.domain.com', |
| 197 | 196 | |
| 198 | ||
| 199 | ||
| 197 | ||
| 198 | ||
| 200 | 199 | |
| 201 | 200 | <a name="spa-authenticating"></a> |
| 202 | 201 | ### 验证 | … | … |
| 213 | 212 | |
| 214 | 213 | > {提示}你可以自由编写自己的`/login`端点;但是,你应确保使用标准的[Laravel提供的基于会话的身份验证服务](/docs/{{version}}/authentication#authenticating-users)对用户进行身份验证。 |
| 215 | 214 | |
| 216 | ||
| 217 | ||
| 215 | ||
| 216 | ||
| 218 | 217 | |
| 219 | 218 | <a name="protecting-spa-routes"></a> |
| 220 | 219 | ### 路由保护 | … | … |
| 225 | 224 | return $request->user(); |
| 226 | 225 | }); |
| 227 | 226 | |
| 228 | ||
| 229 | ||
| 227 | ||
| 228 | ||
| 230 | 229 | |
| 231 | 230 | <a name="authorizing-private-broadcast-channels"></a> |
| 232 | 231 | ### 授权私有广播频道 | … | … |
| 261 | 260 | }, |
| 262 | 261 | }) |
| 263 | 262 | |
| 264 | ||
| 265 | ||
| 263 | ||
| 264 | ||
| 266 | 265 | |
| 267 | 266 | <a name="mobile-application-authentication"></a> |
| 268 | 267 | ## 移动应用身份验证 | … | … |
| 304 | 303 | <a name="protecting-mobile-api-routes"></a> |
| 305 | 304 | ### 路由保护 |
| 306 | 305 | |
| 307 | 如前所述,您需要保护路由,因此必须通过在路由上附加`airlock`身份验证看守器来对所有传入请求进行身份验证。一般来说,你会将此看守器附加到`routes | |
| 306 | 如前所述,您需要保护路由,因此必须通过在路由上附加`airlock`身份验证看守器来对所有传入请求进行身份验证。一般来说,你会将此看守器附加到`routes/api.php`文件中定义的路由上: | |
| 308 | 307 | |
| 309 | 308 | Route::middleware('auth:airlock')->get('/user', function (Request $request) { |
| 310 | 309 | return $request->user(); |
| 311 | 310 | }); |
| 312 | 311 | |
| 313 | ||
| 314 | ||
| 312 | ||
| 313 | ||
| 315 | 314 | |
| 316 | 315 | <a name="revoking-mobile-api-tokens"></a> |
| 317 | 316 | ### 撤销令牌 | … | … |
| 349 | 348 | Airlock::actingAs( |
| 350 | 349 | factory(User::class)->create(), |
| 351 | 350 | ['*'] |
| 352 | ); | |
| 351 | ); | |
| 353 | 352 |
关于 LearnKu