<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                后端資源權限控制使用Spring Security權限注解控制,比如下面這個資源只有擁有"user:add"權限的用戶可以訪問: ``` /** * 保存用戶包括角色和部門 * * @param userDto * @return */ @PostMapping @PreAuthorize("hasAuthority('sys:user:add')") public R insert(@RequestBody UserDTO userDto) { return R.ok(userService.insertUser(userDto)); } ``` 如果用戶沒有這個權限的話,訪問該資源會返回403狀態碼。 ## 如何權限分配 那么,如何才能讓用戶擁有“user:add”權限? 后端權限模塊采用RBAC(**R**ole-**B**ased**A**ccess**C**ontrol,基于角色的訪問控制)的架構,簡單地說,一個用戶擁有若干角色,每一個角色擁有若干權限。這樣,就構造成“用戶-角色-權限”的授權模型。在這種模型中,用戶與角色之間,角色與權限之間,一般者是多對多的關系。系統中的數據表也是基于該模型設計的。 比如,想要讓admin這個用戶擁有“user:add”權限,數據表就要存在如下關聯數據: 1. sys_menu表中存在一個`name`為“新增用戶”按鈕,`perms`的值為`user:add`,假設這條數據的`menu_id`為1; 2. sys_role表中存在一個角色,該角色的`role_id`為2; 3. sys_role_menu表中存在一條數據,用于關聯`menu_id`為1按鈕和`role_id`為2的角色; 4. sys_user表中存在一條`user_name`為admin的用戶,`user_id`為3; 5. sys_user_role表中存在一條數據,用于關聯`user_id`為3的用戶和`role_id`為2的角色。 通過上面的步驟,用戶admin就擁有了"user:add"權限 ## 有了權限如何訪問? 訪問后端接口需在請求頭中攜帶token進行訪問,請求頭格式如下: ``` # JWT參數 # token頭部 jwt: header: Authorization tokenHead: 'Bearer ' # Authorization: Bearer 登錄時返回的token Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTU1ODk2NzY0OSwiaWF0IjoxNTU4OTQ2MDQ5fQ.jsJvqHa1tKbJazG0p9kq5J2tT7zAk5B6N_CspdOAQLWgEICStkMmvLE-qapFTtWnnDUPAjqmsmtPFSWYaH5LtA ``` 在請求URL頭部加上`Authorization`即可
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看