jwt.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <?php
  2. return [
  3. /*
  4. |--------------------------------------------------------------------------
  5. | JWT Authentication Secret
  6. |--------------------------------------------------------------------------
  7. |
  8. | 用于加密生成 token 的 secret
  9. |
  10. */
  11. 'secret' => env('JWT_SECRET'),
  12. /*
  13. |--------------------------------------------------------------------------
  14. | JWT Authentication Keys
  15. |--------------------------------------------------------------------------
  16. |
  17. | 如果你在 .env 文件中定义了 JWT_SECRET 的随机字符串
  18. | 那么 jwt 将会使用 对称算法 来生成 token
  19. | 如果你没有定有,那么jwt 将会使用如下配置的公钥和私钥来生成 token
  20. |
  21. */
  22. 'keys' => [
  23. /*
  24. |--------------------------------------------------------------------------
  25. | Public Key
  26. |--------------------------------------------------------------------------
  27. |
  28. | 公钥
  29. |
  30. */
  31. 'public' => env('JWT_PUBLIC_KEY'),
  32. /*
  33. |--------------------------------------------------------------------------
  34. | Private Key
  35. |--------------------------------------------------------------------------
  36. |
  37. | 私钥
  38. |
  39. */
  40. 'private' => env('JWT_PRIVATE_KEY'),
  41. /*
  42. |--------------------------------------------------------------------------
  43. | Passphrase
  44. |--------------------------------------------------------------------------
  45. |
  46. | 私钥的密码。 如果没有设置,可以为 null。
  47. |
  48. */
  49. 'passphrase' => env('JWT_PASSPHRASE'),
  50. ],
  51. /*
  52. |--------------------------------------------------------------------------
  53. | JWT time to live
  54. |--------------------------------------------------------------------------
  55. |
  56. | 指定 access_token 有效的时间长度(以分钟为单位),默认为1小时,您也可以将其设置为空,以产生永不过期的标记
  57. |
  58. */
  59. 'ttl' => env('JWT_TTL', 60),
  60. /*
  61. |--------------------------------------------------------------------------
  62. | Refresh time to live
  63. |--------------------------------------------------------------------------
  64. |
  65. | 指定 access_token 可刷新的时间长度(以分钟为单位)。默认的时间为 2 周。
  66. | 大概意思就是如果用户有一个 access_token,那么他可以带着他的 access_token
  67. | 过来领取新的 access_token,直到 2 周的时间后,他便无法继续刷新了,需要重新登录。
  68. |
  69. */
  70. 'refresh_ttl' => env('JWT_REFRESH_TTL', 20160),
  71. /*
  72. |--------------------------------------------------------------------------
  73. | JWT hashing algorithm
  74. |--------------------------------------------------------------------------
  75. |
  76. | 指定将用于对令牌进行签名的散列算法。
  77. |
  78. */
  79. 'algo' => env('JWT_ALGO', 'HS256'),
  80. /*
  81. |--------------------------------------------------------------------------
  82. | Required Claims
  83. |--------------------------------------------------------------------------
  84. |
  85. | 指定必须存在于任何令牌中的声明。
  86. |
  87. |
  88. */
  89. 'required_claims' => [
  90. 'iss',
  91. 'iat',
  92. 'exp',
  93. 'nbf',
  94. 'sub',
  95. 'jti',
  96. ],
  97. /*
  98. |--------------------------------------------------------------------------
  99. | Persistent Claims
  100. |--------------------------------------------------------------------------
  101. |
  102. | 指定在刷新令牌时要保留的声明密钥。
  103. |
  104. */
  105. 'persistent_claims' => [
  106. // 'foo',
  107. // 'bar',
  108. ],
  109. /*
  110. |--------------------------------------------------------------------------
  111. | Blacklist Enabled
  112. |--------------------------------------------------------------------------
  113. |
  114. | 为了使令牌无效,您必须启用黑名单。
  115. | 如果您不想或不需要此功能,请将其设置为 false。
  116. |
  117. */
  118. 'blacklist_enabled' => env('JWT_BLACKLIST_ENABLED', true),
  119. /*
  120. | -------------------------------------------------------------------------
  121. | Blacklist Grace Period
  122. | -------------------------------------------------------------------------
  123. |
  124. | 当多个并发请求使用相同的JWT进行时,
  125. | 由于 access_token 的刷新 ,其中一些可能会失败
  126. | 以秒为单位设置请求时间以防止并发的请求失败。
  127. |
  128. */
  129. 'blacklist_grace_period' => env('JWT_BLACKLIST_GRACE_PERIOD', 0),
  130. /*
  131. |--------------------------------------------------------------------------
  132. | Providers
  133. |--------------------------------------------------------------------------
  134. |
  135. | 指定整个包中使用的各种提供程序。
  136. |
  137. */
  138. 'providers' => [
  139. /*
  140. |--------------------------------------------------------------------------
  141. | JWT Provider
  142. |--------------------------------------------------------------------------
  143. |
  144. | 指定用于创建和解码令牌的提供程序。
  145. |
  146. */
  147. 'jwt' => Tymon\JWTAuth\Providers\JWT\Namshi::class,
  148. /*
  149. |--------------------------------------------------------------------------
  150. | Authentication Provider
  151. |--------------------------------------------------------------------------
  152. |
  153. | 指定用于对用户进行身份验证的提供程序。
  154. |
  155. */
  156. 'auth' => Tymon\JWTAuth\Providers\Auth\Illuminate::class,
  157. /*
  158. |--------------------------------------------------------------------------
  159. | Storage Provider
  160. |--------------------------------------------------------------------------
  161. |
  162. | 指定用于在黑名单中存储标记的提供程序。
  163. |
  164. */
  165. 'storage' => Tymon\JWTAuth\Providers\Storage\Illuminate::class,
  166. ],
  167. ];