豐田86換裝法拉利引擎成功! 先漂兩圈試試吧_網頁設計公司

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

而最霸氣的就是那台突出的法拉利發動機,因為體積較大,所以發動機比車頭還要高一點,竟有點美式V8肌肉車的感覺。目前還不知這輛86輸出功率是多少,但經過強化之後,我猜動力絕對不會少於600馬力。因為本身是一位漂移車手,所以改好之後當然要拿來漂一漂活動下啦。

前陣子,我們就推送過一個美國漂移車手Ryan Tuerck把一台法拉利458的法動機塞到一輛豐田86上,現在這輛86也已經到了完工調試階段,今天就讓大家看看吧。

這輛86基本就只剩個車身,塞進法拉利458的4.5L V8發動機之後,整輛車也根據實際需要進行了很大程度的改造,

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

比如說冷卻系統後置,全車輕量化和車身強化,進口方式也改了,同時也用上了不少改裝品牌的套件。加上這亮眼的姨媽紅,只要看一眼你就會記住它。

而最霸氣的就是那台突出的法拉利發動機,因為體積較大,所以發動機比車頭還要高一點,竟有點美式V8肌肉車的感覺 。目前還不知這輛86輸出功率是多少,但經過強化之後,我猜動力絕對不會少於600馬力。

因為本身是一位漂移車手,所以改好之後當然要拿來漂一漂活動下啦。這輛4586的聲浪還真是不錯,那台458的發動機依然是最晃眼的,不知以後這輛車會不會拉去比賽,這樣就可以看到更多這輛4586的視頻啦。

另附之前還在施工的4586視頻

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

北韓暴雨成災糧倉泡湯 金正恩到場視察_網頁設計公司

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

摘錄自2020年8月7日中央社報導

北韓中央通信社(KCNA)報導,北韓領導人金正恩今天(7日)視察黃海北道(North Hwanghae)水患災情,並下令提供糧食和補給品給災民。

法新社報導,北韓部分地區已經連日降下傾盆大雨。北韓許多山地和丘陵地區植被長期以來遭到破壞,使得水流恣意順著山勢往下流。

平壤以南的黃海北道是北韓重要糧倉。

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

北韓中央通信社說,銀波郡(Unpha County)大青里(Taechong-ri)一帶的堤防潰堤,「導致730餘棟平房和600餘公頃稻田泡湯,179棟住宅被摧毀」。

北韓中央通信社指出,金正恩表示,儘速供應糧食、藥物和基本民生必需品給水患地區災民是當務之急。

國際新聞
北韓
暴雨

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

SpringBoot學習筆記(十五:OAuth2 )_網頁設計公司

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

@

目錄

  • 一、OAuth 簡介
    • 1、什麼是OAuth
    • 2、OAuth 角色
    • 3、OAuth 授權流程
    • 4、OAuth授權模式
      • 4.1、授權碼
      • 4.2、隱藏式
      • 4.3、密碼式
      • 4.4、憑證式
  • 二、實踐
    • 1、密碼模式
      • 1.1、授權服務器
        • 1.1.1、依賴
        • 1.1.2、授權服務器配置
        • 1.1.3、Spring Security配置
      • 1.2、資源服務器
        • 1.2.1、資源服務器配置
        • 1.2.2、資源服務接口
      • 1.3、測試
        • 1.3.1、獲取token
        • 1.3.2、使用獲取到的token訪問資源接口
    • 2、授權碼模式
      • 2.1、應用註冊
      • 2.2、具體代碼
      • 2.3、測試

一、OAuth 簡介

1、什麼是OAuth

開放授權(Open Authorization,OAuth)是一種資源提供商用於授權第三方應用代表資源所有者獲取有限訪問權限的授權機制。由於在整個授權過程中,第三方應用都無須觸及用戶的密碼就可以取得部分資源的使用權限,所以OAuth是安全開放的。

例如,用戶想通過 QQ 登錄csdn,這時csdn就是一個第三方應用,csdn要訪問用戶的一些基本信息就需要得到用戶的授權,如果用戶把自己的 QQ 用戶名和密碼告訴csdn,那麼csdn就能訪問用戶的所有數據,井且只有用戶修改密碼才能收回授權,這種授權方式安全隱患很大,如果使用 OAuth ,就能很好地解決這一問題。

OAuth第一個版本誕生於2007年12月,並於2010年4月正式被IETF作為標準發布(編號RFC 5849)。由於OAuth1.0複雜的簽名邏輯以及單一的授權流程存在較大缺陷,隨後標準工作組又推出了 OAuth2.0草案,並在2012年10月正式發布其標準(編號RFC 6749)。OAuth2.0放棄了OAuth1.0中讓開發者感到痛苦的数字簽名和加密方案,使用已經得到驗證並廣泛使用的HTTPS技術作為安全保障手 段。OAuth2.0與OAuth1.0互不兼容,由於OAuth1.0已經基本退出歷史舞台,所以下面提到的OAuth都是指OAuth2.0。

2、OAuth 角色

想要理解OAuth的運行流程,則必須要認識4個重要的角色。

  • Resource Owner:資源所有者,通常指用戶,例如每一個QQ用戶。
  • Resource Server:資源服務器,指存放用戶受保護資源的服務器,通常需要通過Access Token(訪問令牌)才能進行訪問。例如,存儲QQ用戶基本信息的服務器,充當的便是資源服務器的 角色。
  • Client:客戶端,指需要獲取用戶資源的第三方應用,如CSDN網站。
  • Authorization Server:授權服務器,用於驗證資源所有者,並在驗證成功之後向客戶端發放相關訪問令牌。

3、OAuth 授權流程

這是 個大致的流程,因為 OAuth2 中有 種不同的授權模式,每種授權模式的授權流程又會有差異,基本流程如下:

  • 客戶端(第三方應用)向資源所有者請求授權。
  • 服務端返回一個授權許可憑證給客戶端。
  • 客戶端拿着授權許可憑證去授權服務器申請令牌。
  • 授權服務器驗證信息無誤后,發放令牌給客戶端。
  • 客戶端拿着令牌去資源服務器訪問資源。
  • 資源服務器驗證令牌無誤后開放資源。

4、OAuth授權模式

OAuth 協議的授權模式共分為4種。

4.1、授權碼

授權碼(authorization code)方式,指的是第三方應用先申請一個授權碼,然後再用該碼獲取令牌。

這種方式是最常用的流程,安全性也最高,它適用於那些有後端的 Web 應用。授權碼通過前端傳送,令牌則是儲存在後端,而且所有與資源服務器的通信都在後端完成。這樣的前後端分離,可以避免令牌泄漏。

  • 第一步,A 網站提供一個鏈接,用戶點擊后就會跳轉到 B 網站,授權用戶數據給 A 網站使用。下面就是 A 網站跳轉 B 網站的一個示意鏈接。
https://b.com/oauth/authorize?
  response_type=code&
  client_id=CLIENT_ID&
  redirect_uri=CALLBACK_URL&
  scope=read

上面 URL 中,response_type參數表示要求返回授權碼(code),client_id參數讓 B 知道是誰在請求,redirect_uri參數是 B 接受或拒絕請求后的跳轉網址,scope參數表示要求的授權範圍(這裡是只讀)。

  • 第二步,用戶跳轉后,B 網站會要求用戶登錄,然後詢問是否同意給予 A 網站授權。用戶表示同意,這時 B 網站就會跳回redirect_uri參數指定的網址。跳轉時,會傳回一個授權碼,就像下面這樣。
https://a.com/callback?code=AUTHORIZATION_CODE

上面 URL 中,code參數就是授權碼。

  • 第三步,A 網站拿到授權碼以後,就可以在後端,向 B 網站請求令牌。
https://b.com/oauth/token?
 client_id=CLIENT_ID&
 client_secret=CLIENT_SECRET&
 grant_type=authorization_code&
 code=AUTHORIZATION_CODE&
 redirect_uri=CALLBACK_URL

上面 URL 中,client_id 參數和 client_secret 參數用來讓 B 確認 A 的身份(client_secret參數是保密的,因此只能在後端發請求),grant_type參數的值是 AUTHORIZATION_CODE,表示採用的授權方式是授權碼,code參數是上一步拿到的授權碼,redirect_uri 參數是令牌頒發后的回調網址。

  • 第四步,B 網站收到請求以後,就會頒發令牌。具體做法是向redirect_uri指定的網址,發送一段 JSON 數據。

    {    
      "access_token":"ACCESS_TOKEN",
      "token_type":"bearer",
      "expires_in":2592000,
      "refresh_token":"REFRESH_TOKEN",
      "scope":"read",
      "uid":100101,
      "info":{...}
    }

上面 JSON 數據中,access_token字段就是令牌,A 網站在後端拿到了。

4.2、隱藏式

有些 Web 應用是純前端應用,沒有後端。這時就不能用上面的方式了,必須將令牌儲存在前端。RFC 6749 就規定了第二種方式,允許直接向前端頒發令牌。這種方式沒有授權碼這个中間步驟,所以稱為(授權碼)”隱藏式”(implicit)。

  • 第一步,A 網站提供一個鏈接,要求用戶跳轉到 B 網站,授權用戶數據給 A 網站使用。
https://b.com/oauth/authorize?
  response_type=token&
  client_id=CLIENT_ID&
  redirect_uri=CALLBACK_URL&
  scope=read

上面 URL 中,response_type參數為token,表示要求直接返回令牌。

  • 第二步,用戶跳轉到 B 網站,登錄后同意給予 A 網站授權。這時,B 網站就會跳回redirect_uri參數指定的跳轉網址,並且把令牌作為 URL 參數,傳給 A 網站。
https://a.com/callback#token=ACCESS_TOKEN

上面 URL 中,token參數就是令牌,A 網站因此直接在前端拿到令牌。

注意,令牌的位置是 URL 錨點(fragment),而不是查詢字符串(querystring),這是因為 OAuth 2.0 允許跳轉網址是 HTTP 協議,因此存在”中間人攻擊”的風險,而瀏覽器跳轉時,錨點不會發到服務器,就減少了泄漏令牌的風險。

這種方式把令牌直接傳給前端,是很不安全的。因此,只能用於一些安全要求不高的場景,並且令牌的有效期必須非常短,通常就是會話期間(session)有效,瀏覽器關掉,令牌就失效了。

4.3、密碼式

如果你高度信任某個應用,RFC 6749 也允許用戶把用戶名和密碼,直接告訴該應用。該應用就使用你的密碼,申請令牌,這種方式稱為”密碼式”(password)。

  • 第一步,A 網站要求用戶提供 B 網站的用戶名和密碼。拿到以後,A 就直接向 B 請求令牌。
https://oauth.b.com/token?
  grant_type=password&
  username=USERNAME&
  password=PASSWORD&
  client_id=CLIENT_ID

上面 URL 中,grant_type參數是授權方式,這裏的password表示”密碼式”,username和password是 B 的用戶名和密碼。

  • 第二步,B 網站驗證身份通過後,直接給出令牌。注意,這時不需要跳轉,而是把令牌放在 JSON 數據裏面,作為 HTTP 回應,A 因此拿到令牌。

4.4、憑證式

最後一種方式是憑證式(client credentials),適用於沒有前端的命令行應用,即在命令行下請求令牌。

  • 第一步,A 應用在命令行向 B 發出請求。
https://oauth.b.com/token?
  grant_type=client_credentials&
  client_id=CLIENT_ID&
  client_secret=CLIENT_SECRET

上面 URL 中,grant_type參數等於client_credentials表示採用憑證式,client_id和client_secret用來讓 B 確認 A 的身份。

  • 第二步,B 網站驗證通過以後,直接返回令牌。

這種方式給出的令牌,是針對第三方應用的,而不是針對用戶的,即有可能多個用戶共享同一個令牌。

二、實踐

1、密碼模式

如果是自建單點服務,一般都會使用密碼模式。資源服務器和授權服務器
可以是同一台服務器,也可以分開。這裏我們學習分佈式的情況。

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

授權服務器和資源服務器分開,項目結構如下:

1.1、授權服務器

授權服務器的職責:

  • 管理客戶端及其授權信息
    * 管理用戶及其授權信息
    * 管理Token的生成及其存儲
    * 管理Token的校驗及校驗Key

1.1.1、依賴

        <!--security-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <!--oauth2-->
        <dependency>
            <groupId>org.springframework.security.oauth</groupId>
            <artifactId>spring-security-oauth2</artifactId>
            <version>2.3.6.RELEASE</version>
        </dependency>

1.1.2、授權服務器配置

授權服務器配置通過繼承AuthorizationServerConfigurerAdapter的配置類實現:

/**
 * @Author 三分惡
 * @Date 2020/5/20
 * @Description  授權服務器配置
 */
@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {

    @Autowired
    private AuthenticationManager authenticationManager;//密碼模式需要注入認證管理器

    @Autowired
    public PasswordEncoder passwordEncoder;

    //配置客戶端
    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.inMemory()
                .withClient("client-demo")
                .secret(passwordEncoder.encode("123"))
                .authorizedGrantTypes("password") //這裏配置為密碼模式
                .scopes("read_scope");
    }

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
        endpoints.authenticationManager(authenticationManager);//密碼模式必須添加authenticationManager
    }

    @Override
    public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {
        security.allowFormAuthenticationForClients()
                .checkTokenAccess("isAuthenticated()");
    }
}

  • 客戶端的註冊:這裏通過inMemory的方式在內存中註冊客戶端相關信息;實際項目中可以通過一些管理接口及界面動態實現客戶端的註冊
  • 校驗Token權限控制:資源服務器如果需要調用授權服務器的/oauth/check_token接口校驗token有效性,那麼需要配置checkTokenAccess(“isAuthenticated()”)
  • authenticationManager配置:需要通過endpoints.authenticationManager(authenticationManager)將Security中的authenticationManager配置到Endpoints中,否則,在Spring Security中配置的權限控制將不會在進行OAuth2相關權限控制的校驗時生效。

1.1.3、Spring Security配置

通過Spring Security來完成用戶及密碼加解密等配置:

/**
 * @Author 三分惡
 * @Date 2020/5/20
 * @Description SpringSecurity 配置
 */
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }

    @Bean
    public AuthenticationManager authenticationManager() throws Exception {
        return super.authenticationManager();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
                .withUser("fighter")
                .password(passwordEncoder().encode("123"))
                .authorities(new ArrayList<>(0));
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        //所有請求必須認證
        http.authorizeRequests().anyRequest().authenticated();
    }
}

1.2、資源服務器

資源服務器的職責:

  • token的校驗
  • 給與資源

1.2.1、資源服務器配置

資源服務器依賴一樣,而配置則通過繼承自ResourceServerConfigurerAdapter的配置類來實現:

/**
 * @Author 三分惡
 * @Date 2020/5/20
 * @Description
 */
@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
    @Bean
    public RemoteTokenServices remoteTokenServices() {
        final RemoteTokenServices tokenServices = new RemoteTokenServices();
        tokenServices.setClientId("client-demo");
        tokenServices.setClientSecret("123");
        tokenServices.setCheckTokenEndpointUrl("http://localhost:8090/oauth/check_token");
        return tokenServices;
    }

    @Override
    public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
        resources.stateless(true);
    }

    @Override
    public void configure(HttpSecurity http) throws Exception {
        //session創建策略
        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED);
        //所有請求需要認證
        http.authorizeRequests().anyRequest().authenticated();
    }
}

主要進行了如下配置:

  • TokenService配置:在不採用JWT的情況下,需要配置RemoteTokenServices來充當tokenServices,它主要完成Token的校驗等工作。因此需要指定校驗Token的授權服務器接口地址
  • 同時,由於在授權服務器中配置了/oauth/check_token需要客戶端登錄后才能訪問,因此也需要配置客戶端編號及Secret;在校驗之前先進行登錄
  • 通過ResourceServerSecurityConfigurer來配置需要訪問的資源編號及使用的TokenServices

1.2.2、資源服務接口

接口比較簡單:

/**
 * @Author 三分惡
 * @Date 2020/5/20
 * @Description
 */
@RestController
public class ResourceController {

    @GetMapping("/user/{username}")
    public String user(@PathVariable String username){
        return "Hello !"+username;
    }
}

1.3、測試

授權服務器使用8090端口啟動,資源服務器使用默認端口。

1.3.1、獲取token

訪問/oauth/token端點,獲取token:

  • url:   http://localhost:8090/oauth/token?username=fighter&password=123&scope=read_scope&grant_type=password
  • 請求頭:
  • 返回的token

1.3.2、使用獲取到的token訪問資源接口

  • 使用token調用資源,訪問http://localhost:8080/user/fighter,注意使用token添加Bearer請求頭

相當於在Headers中添加 Authorization:Bearer 4a3c351d-770d-42aa-af39-3f54b50152e9。

OK,可以看到資源正確返回。

這裏僅僅是密碼模式的精簡化配置,在實際項目中,某些部分如:

  • 資源服務訪問授權服務去校驗token這部分可能會換成Jwt、Redis等tokenStore實現,
  • 授權服務器中的用戶信息與客戶端信息生產環境從數據庫中讀取,對應Spring Security的UserDetailsService實現類或用戶信息的Provider

2、授權碼模式

很多網站登錄時,允許使用第三方網站的身份,這稱為”第三方登錄”。所謂第三方登錄,實質就是 OAuth 授權。

例如用戶想要登錄 A 網站,A 網站讓用戶提供第三方網站的數據,證明自己的身份。獲取第三方網站的身份數據,就需要 OAuth 授權。

以A網站使用GitHub第三方登錄為例,流程示意如下:

接下來,簡單地實現GitHub登錄流程。

2.1、應用註冊

在使用之前需要先註冊一個應用,讓GitHub可以識別。

  • 訪問地址:https://github.com/settings/applications/new,填寫註冊表

應用的名稱隨便填,主頁 URL 填寫http://localhost:8080,回調地址填寫 http://localhost:8080/oauth/redirect。

  • 提交表單以後,GitHub 應該會返回客戶端 ID(client ID)和客戶端密鑰(client secret),這就是應用的身份識別碼

2.2、具體代碼

  • 只需要引入web依賴:
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
  • GitHub相關配置
github.client.clientId=29d127aa0753c12263d7
github.client.clientSecret=f3cb9222961efe4c2adccd6d3e0df706972fa5eb
github.client.authorizeUrl=https://github.com/login/oauth/authorize
github.client.accessTokenUrl=https://github.com/login/oauth/access_token
github.client.redirectUrl=http://localhost:8080/oauth/redirect
github.client.userInfoUrl=https://api.github.com/user

  • 對應的配置類
@Component
@ConfigurationProperties(prefix = "github.client")
public class GithubProperties {
    private String clientId;
    private String clientSecret;
    private String authorizeUrl;
    private String redirectUrl;
    private String accessTokenUrl;
    private String userInfoUrl;
    //省略getter、setter
}    
  • index.html:首頁比較簡單,一個鏈接向後端發起登錄請求
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>網站首頁</title>
</head>
<body>
    <div style="text-align: center">
        <a href="http://localhost:8080/authorize">Login in with GitHub</a>
    </div>
</body>
</html>
  • GithubLoginController.java:
     * 使用RestTemplate發送http請求
     * 使用Jackson解析返回的json,不用引入更多依賴
     * 快捷起見,發送http請求的方法直接寫在控制器中,實際上應該將工具方法分離出去
     * 同樣是快捷起見,返回的用戶信息沒有做任何解析
@Controller
public class GithubLoginController {
    @Autowired
    GithubProperties githubProperties;


    /**
     * 登錄接口,重定向至github
     *
     * @return 跳轉url
     */
    @GetMapping("/authorize")
    public String authorize() {
        String url =githubProperties.getAuthorizeUrl() +
                "?client_id=" + githubProperties.getClientId() +
                "&redirect_uri=" + githubProperties.getRedirectUrl();
        return "redirect:" + url;
    }

    /**
     * 回調接口,用戶同意授權后,GitHub會將授權碼傳遞給此接口
     * @param code GitHub重定向時附加的授權碼,只能用一次
     * @return
     */
    @GetMapping("/oauth/redirect")
    @ResponseBody
    public String redirect(@RequestParam("code") String code) throws JsonProcessingException {
        System.out.println("code:"+code);
        // 使用code獲取token
        String accessToken = this.getAccessToken(code);
        // 使用token獲取userInfo
        String userInfo = this.getUserInfo(accessToken);
        return userInfo;
    }


    /**
     * 使用授權碼獲取token
     * @param code
     * @return
     */
    private String getAccessToken(String code) throws JsonProcessingException {
        String url = githubProperties.getAccessTokenUrl() +
                "?client_id=" + githubProperties.getClientId() +
                "&client_secret=" + githubProperties.getClientSecret() +
                "&code=" + code +
                "&grant_type=authorization_code";
        // 構建請求頭
        HttpHeaders requestHeaders = new HttpHeaders();
        // 指定響應返回json格式
        requestHeaders.add("accept", "application/json");
        // 構建請求實體
        HttpEntity<String> requestEntity = new HttpEntity<>(requestHeaders);
        RestTemplate restTemplate = new RestTemplate();
        // post 請求方式
        ResponseEntity<String> response = restTemplate.postForEntity(url, requestEntity, String.class);
        String responseStr = response.getBody();
        // 解析響應json字符串
        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode jsonNode = objectMapper.readTree(responseStr);
        String accessToken = jsonNode.get("access_token").asText();
        System.out.println("accessToken:"+accessToken);
        return accessToken;
    }

    /**
     *
     * @param accessToken 使用token獲取userInfo
     * @return
     */
    private String getUserInfo(String accessToken) {
        String url = githubProperties.getUserInfoUrl();
        // 構建請求頭
        HttpHeaders requestHeaders = new HttpHeaders();
        // 指定響應返回json格式
        requestHeaders.add("accept", "application/json");
        // AccessToken放在請求頭中
        requestHeaders.add("Authorization", "token " + accessToken);
        // 構建請求實體
        HttpEntity<String> requestEntity = new HttpEntity<>(requestHeaders);
        RestTemplate restTemplate = new RestTemplate();
        // get請求方式
        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class);
        String userInfo = response.getBody();
        System.out.println("userInfo:"+userInfo);
        return userInfo;
    }

}

2.3、測試

  • 訪問localhost:8080,點擊鏈接,重定向至GitHub
  • 在GitHub中輸入賬號密碼,登錄
  • 登錄成功后,GitHub 就會跳轉到redirect_uri指定的跳轉網址,並且帶上授權碼
http://localhost:8080/oauth/redirect?code=d45683eded3ac7d4e6ed

OK,用戶信息也一併返回了。

本文為學習筆記類博客,學習資料見參考!

參考:

【1】:《SpringSecurity 實戰》
【2】:《SpringBoot Vue全棧開發實戰》
【3】:理解OAuth 2.0
【4】:OAuth 2.0 的一個簡單解釋
【5】:OAuth 2.0 的四種方式
【6】:這個案例寫出來,還怕跟面試官扯不明白 OAuth2 登錄流程?
【7】:做微服務繞不過的 OAuth2,松哥也來和大家扯一扯
【8】:GitHub OAuth 第三方登錄示例教程
【9】:OAuth 2.0 認證的原理與實踐
【10】:Spring Security OAuth2 Demo —— 密碼模式(Password)
【11】:Spring Security OAuth專題學習-密碼模式及客戶端模式實例
【12】:Spring Boot and OAuth2
【13】:Spring Boot+OAuth2使用GitHub登錄自己的服務

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

每天跑100公里 選這些大氣B級車准沒錯!_網頁設計公司

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

同時,這款速派要喝95號汽油。話雖如此,速派的底盤濾震效果還是杠杠的,對付城區里的小顛簸總能有條不紊地過濾掉。遇到特別爛的路,則會讓你感覺一種帶有厚實感的硬度。配置上,這款速派就有不少亮點,不僅配了胎壓監測,還有自動駐車+电子手剎這對黃金組合,另外還可以選裝電動天窗和發動機啟停。

現在B級車市場的選擇琳琅滿目,為了滿足每天往返市區與郊區的路程,該如何選擇一款符合自己心意的B級車呢?下面編者我就給大家介紹幾款省心又好開的B級車。

廣汽豐田-凱美瑞

2016款 2.0E 十周年紀念精英版

指導價:18.78萬

優惠幅度:2.5萬元左右(僅供參考)

編者點評:

凱美瑞作為一款久歷沙場的車系,各項技術都比較穩定。這款2.0L車型的綜合油耗為8.7L左右,算是比較省油的。現在這款車終端也能有2.5萬元左右的優惠,讓步也夠大的。

一直以來,凱美瑞給人的感覺就是中庸,無論是外觀,還是內飾設計,都給人一種四平八穩,缺乏亮點的感覺。不過,也正是這樣的設計,得到了不少成熟人士的認可。

動力總成上,2.0L自然吸氣發動機配6擋手自一體變速箱,最大輸出167馬力和199牛米。實際動力表現不錯,換擋平順度高,發動機的運轉聲音優雅。但是,在全負荷運轉下,發動機會有點吃力。底盤可過濾大部分路面的顛簸,但是遇到大坑窪時,還是容易露餡。

保養方面,由於官方在6萬公里內免費為車主進行基礎保養,所以最後的保養也僅為3594元。作為一輛B級車來說,這個價格完全可以接受。

上汽大眾斯柯達-速派

2016款 280TSI DSG前行版

指導價:17.98萬

優惠幅度:2.5萬元左右(僅供參考)

編者點評:

雖然斯柯達是大眾的小弟,但是大眾最近把不少新技術都下放給了這位小弟。所以,鍾愛德系的人不妨選一輛斯柯達,畢竟斯柯達的品牌溢價也沒有大眾那麼高。

動力總成上,1.4T的EA211發動機+7速DCT,最大輸出150馬力和250牛米。不過,最大扭矩到3000轉就開始衰減,明顯偏早,

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

而且發動機的噪音偏大,影響乘車質感。同時,這款速派要喝95號汽油。

話雖如此,速派的底盤濾震效果還是杠杠的,對付城區里的小顛簸總能有條不紊地過濾掉。遇到特別爛的路,則會讓你感覺一種帶有厚實感的硬度。

配置上,這款速派就有不少亮點,不僅配了胎壓監測,還有自動駐車+电子手剎這對黃金組合,另外還可以選裝電動天窗和發動機啟停。除此以外,還有氙氣大燈,8-9個喇叭的揚聲器,行車電腦显示屏和后駐車雷達。

東風悅達起亞-起亞K5

2016款 2.0L 自動LUX

指導價:17.58萬

優惠幅度:3.5萬左右(僅供參考)

編者點評:

K5的設計可以說越來越前衛,也越來越能吸引年輕消費者,同時優惠幅度又足夠大。油耗上,這款2.0L車型的百公里綜合油耗為8.9L,算是比較不錯的。

K5搭載了2.0L自然吸氣發動機+6擋手自一體變速箱,最大輸出161馬力和193牛米,這個數據也只能說是中規中矩,開起來平順,輸出線性。K5的底盤濾震比較有韌性,可以帶給駕駛員良好的操控性。

配置上也頗有亮點,首先是18寸的輪胎規格加上全尺寸備胎足夠厚道。除此,還有無鑰匙進入與啟動,感應後備廂,倒車視頻影像和后視鏡電動摺疊。如此豐富的配置才對得上韓系車的名號。

編者總結:

這三款車都是有各自顯著特點的車。首先,凱美瑞雖然是一款偏中庸的車,但是如果一台車各方面都中庸的話,那中庸就是它的特點。凱美瑞應該是屬於那種久處不厭的車子,就算開久了,也不會有什麼大的問題煩擾你。

速派是德系的代表,我覺得它能代表大眾的一部分特性,但是品牌溢價又不會有大眾那麼高。這對於那些純粹想體會一下德系車品質的消費者來說,是個很好的選擇。況且,速派亦是MQB平台的產物,跟邁騰和帕薩特品質不會差太遠,差的只是一個標誌。

K5則在大打配置牌,再配合上那運動的外觀確實能吸引不少年輕消費者的目光。同時,K5也是這幾款車中優惠最大的。誠然,K5在机械質感上與日系和德系的對手比還略遜一籌,不過,它也似乎找到了彎道超車的可能。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

時尚達人都在打卡的小狐狸咖啡_網頁設計公司

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

時尚達人都在打卡的小狐狸咖啡

 

 

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

法國時尚品牌Maison Kitsuné大陸首家旗艦店將於10月底在魔都新天地開業,隨之帶來的,還有Maison Kitsuné的子品牌咖啡館Café Kitsuné。Maison Kitsuné的創始人分別是法國人和日本人,日法混血的品牌基因也讓Café Kitsuné別有風情,在空間打造方面,每間分店都具有強烈的品牌特色。

01

帶有法日混血基因的多元化經營品牌這是一間讓全世界的時尚icon都為它打卡的潮流咖啡廳,身上流着的血液,便和其他的咖啡館不同。

 

Café Kitsuné的母公司Maison Kitsuné是一個時尚、电子音樂、咖啡等混合的時尚生活方式品牌,自2002年誕生於法國,在歐美地區一直擁有極高的人氣。Maison Kitsuné最開始的業務分為兩個支線,由之前是建築師的日本人 Masaya Kuroki 負責時尚品牌,法國电子組合 Daft Punk 經理人 Gildas Loac 負責音樂廠牌,從最開始便是平行運作多個領域。音樂讓 Maison Kitsuné 的時尚之路走得更順暢,服裝佔據企業 80% 的利潤。產生開咖啡館的主意,是因為Masaya Kuroki在日本街頭看到許多混血的咖啡館,他們將咖啡與時尚結合,產生一個新的生活方式空間,服裝也得到更好的展示。借用這一概念,Maison Kitsuné2013年在日本青山區推出了第一間Café Kitsuné概念店。品牌的日本創始人Masaya Kuroki堅持門店應該體現當地的文化,而不是刻意營造時尚先鋒感。Café Kitsuné日本店選擇的是香柏木地板,榻榻米和傳統印花壁紙。其中手沖架為純天然木質品且印有日本傳統繪畫。在裝潢設計也完全運用日本傳統室內空間的元素,竹支圍繞的庭院中種植的植物能隨季節變化樣貌和狀態,營造一處東方禪意空間,裝潢帶着濃厚的江戶川風情。Café Kitsuné提供意式濃縮咖啡、瑪奇朵、美式咖啡、拿鐵、卡布奇諾等多種選擇,其中拿鐵是其招牌產品。除了咖啡和特調飲品,Café Kitsuné還有各式甜點和鹹食,包括經典的法式麵包三明治、海綿蛋糕、小狐狸形狀脆餅等等。隨後Maison Kitsuné在巴黎、韓國首爾等時尚地標開設立第二、第三家店,迅速風靡Ins。位於上海新天地的第四家店將於今年10月底開業,目前已圍擋。

02

結合地方特色打造複合型咖啡館Café Kitsuné 在不同城市的店鋪皆別具一格,每間店鋪都會在模式上有所創新。例如巴黎店為咖啡+酒吧,韓國店則加入了服飾、和精品零售。Café Kitsuné 主要針對20~35歲,精通網絡、國際化社區的一群人,所以選址也別有用心。Café Kitsuné巴黎店是首間將咖啡與酒吧結合的空間,店鋪選址盧浮宮最繁華的地段,將門店嵌入了具有400年歷史的巴黎皇家大王宮內。和日本以“茶室”為主題的空間不同,它是典型的法式風情裝飾。除了咖啡,餐廳還提供茶、雞尾酒、午餐及晚餐,營業時間也延長至深夜,覆蓋人們日常的休閑娛樂時間。首爾旗艦店定位在著名的畫廊、咖啡館、攝影工作室、精品店聚集的“藝術街”新沙洞,將服飾、和精品零售加入到了咖啡館內。Café Kitsuné在美妝、音樂、香氛等都有跨界,在韓國店中,潮品的佔用空間進一步加大,門店涵蓋的品類更全,服裝展示成為了重中之重。品牌方稱,最新的上海店或將複製韓國旗艦店的模式,以咖啡+精品店的模式運行。上海店並不是Maison Kitsuné首次進入中國市場,在2015年,Maison Kitsuné在香港銅鑼灣Fashion Walk名店坊開設了中國首家門店,吹響進入中國的號角。一年前, Maison Kitsuné宣布策略,表示將在當地合作夥伴的幫助下探索“尚未開發的亞洲市場”。Maison Kitsuné 已與中國公司 JoeOne 簽署了一項 50/50 的合資企業,以便在大中華區開展業務。▲Maison Kitsuné香港店Maison Kitsuné更透露,未來計劃在中國開設3家門店,分別位於香港、上海和成都,其中上海店10底開業。根據選址的不同,將把服裝店、咖啡館、酒吧、精品店複合打造概念商店。截止目前,Maison Kitsuné在全球市場共有16家直營店,Café Kitsuné已開業的有3家。網站內容來源http://www.online.jx.cn/

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

眾泰:我抄你全家!比亞迪:我挖你牆腳!_網頁設計公司

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

但是一直為人詬病的,就是不夠出眾的外形和毫無設計的LOGO。就在本月4號,有消息稱,前奧迪集團設計總監沃爾夫岡·艾格,將加盟比亞迪擔任設計總監。(比亞迪和奧迪聯合成為“比奧迪”BAD。)名字沒聽過不要緊,其代表作有Q7,R8以及延續到現在的大嘴進氣格柵,就在前幾年,曾任奧迪和大眾首席設計師的彼得希瑞爾加入了韓國起亞,效果確實立竿見影,而且還造就了現在起亞機具辨識度的虎嘯式設計。

1.奔馳幹完寶馬乾破鞋

早些年保時捷推出卡宴的時候業界一片罵聲,後來的市場卻證明了德國人是對的,現在panamera的成功也讓確實讓對手眼紅,近日有報導稱奔馳AMG品牌將於2018年發布一款代號為GT4 的四門跑車,直接對標panamera,新車可能基於下一代奔馳cls開發,外觀設計融入AMG GT 車型運動元素,跑車式的外觀確實很驚艷,不過買卡宴和panamera的人,有多少是衝著保時捷的標去的,而且你這四門四座溜背,CLS準備打醬油?

2.豐田新策略?致炫三廂

有消息稱,新款致炫三廂版將會在廣州車展正式發布,外形採用了與兩廂版車型相似的前臉設計,仍搭載1.3L和1.5L發動機。從此前公布的工信部申報圖可以看到,新款致炫三廂版與一汽豐田威馳一脈相承,前臉設計雖然延續了新款致炫兩廂版的造型,但整體風格和色彩運用更加沉穩,在早些年因為國內的“屁股”情懷,兩廂車很不受待見,所以當年風靡歐洲的標緻307來到國內,也要硬生生的加個屁股上去,此次新款致炫三廂版的側面輪廓和尾部造型與威馳非常接近,難道只是為了豐田在華的新產品策略嗎?

3.抄完破鞋抄大眾 眾泰大邁X7

儘管眾泰SR9的上市迎來了一片罵聲,但是據說到目前為止銷量還不錯,這一次眾泰又給我們帶來了大邁(大賣)X7。光聽這名字就知道眾泰對這款車期望有多高了,外形上則是借鑒了大眾cross coupe GTE概念車的造型,

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

所以現在其他汽車品牌,都是家族式的設計,眾泰呢,則是別人家的設計,配置也是一如眾泰統統都有,甚至有傳言還會加入無人駕駛。

4.自主汽車顏值有救?

比亞迪近幾年的表現算是自主汽車品牌里很不錯的了,從新能源汽車的研發到賣到國外的電動大巴。但是一直為人詬病的,就是不夠出眾的外形和毫無設計的LOGO。就在本月4號,有消息稱,前奧迪集團設計總監沃爾夫岡·艾格,將加盟比亞迪擔任設計總監。(比亞迪和奧迪聯合成為“比奧迪”BAD?)名字沒聽過不要緊,其代表作有Q7,R8以及延續到現在的大嘴進氣格柵,就在前幾年,曾任奧迪和大眾首席設計師的彼得希瑞爾加入了韓國起亞,效果確實立竿見影,而且還造就了現在起亞機具辨識度的虎嘯式設計。先不管為何奧迪設計師頻頻跳槽,要是真的有如此大神的加盟,總覺得自主品牌的外形設計是有救了。

5.開車摸腿違法

這两天的朋友圈被一條違章信息刷屏了,據說一男子開車時因將手放在副駕駛女子腿部,涉嫌危險駕駛被執法設備拍攝,還將面臨罰款200元,記3分處罰,事後相關交警部門表示這條短信中的內容、落款、電話號碼均不屬實,屬於謠言,但是有一點卻應該引起大家注意,根據《道路交通安全法實施條例》第六十二條規定,駕駛員在駕車時有撥打接聽手持電話、觀看電視等妨礙安全駕駛的行為均屬於妨礙安全駕駛的行為,因此上述的開車摸大腿,依然是屬於妨礙安全駕駛的行為範疇,依照法規是可以對此違法行為進行處罰的。在這裏奔馳車主表示,開車要是不摸大腿可是會超速的。

6.廣州電動車禁令再次延期

11月2日,廣州市政府官網發布通告,電動車禁行通告再延期5年!除了電動自行車諸如電動平衡車、獨輪車也被明令禁止,駕駛電動獨輪車、電動平衡車以及其他滑行工具上道路行駛的,由公安機關交通管理部門對駕駛人處50元罰款;駕駛人拒絕接受罰款處罰的,可以扣留電動獨輪車、電動平衡車或者其他滑行工具。不過快遞等行業可以使用符合國家標準的快遞專用電動三輪車在規定區域內從事社區配送服務。實行統一車身標識、安裝車載定位系統終端監控設備、配額備案管理等管理措施,在規定的區域、線路、時間上道路行駛。所以朋友們,如果你還想騎電動車上下班請加入快遞行業,要不然就好好賺錢,努力買車吧。(說得好像買得起車就搖得到號一樣,更何況還買不起車。)本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

新冠病毒從何而來? 專家:動物傳人疾病的共通點在「森林砍伐」_網頁設計公司

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

武肺、氣候變遷使美國野火加劇 西部經濟產出受損恐惡化_網頁設計公司

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

摘錄自2020年7月14日自由時報報導

舊金山聯準會13日釋出的研究表明,隨武漢肺炎(COVID-19)和氣候變遷的影響,美國野火發生的頻率加劇,尤其西部的情況特別嚴重,進而對經濟產生嚴重威脅。

《路透》報導,「野火危機」會發生原因有二,是由於大火與防災資金不足。前者經科學家證實會因為氣候變遷加劇;而研究人員解釋,武肺疫情則增加後者發生的機率,因為封鎖的緣故,政府的收入下降造成財政緊縮,意味著政府會選擇削減其對野火抑制和預防的資金。

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

美國西部亞利桑那州、加利福尼亞州、愛達荷州、內華達州、俄勒岡州、猶他州和華盛頓州的經濟產出有52%都承受著野火危機,隨著野火的發生更加頻繁以及規模加劇,這些地區的經濟陷入更嚴重的情勢,研究人員預估,到了2040年,受到野火威脅的經濟產出比例將上升到56%。

國際新聞
美國
野火
森林大火

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

Apple 公布新 MacBook Pro 召修計畫,部分機型充電有問題可免費更換電池

Apple 近日公布了一個最新的免費電池更換計畫,如果你的筆電是 2016、2017 年款的 MacBook Pro ,而且遇到了充電無法超過 1% 的問題,試過官方提供的檢查方式還是一樣的話,那你就是這回官方宣稱「極少數」用戶中的一員,要怎麼處理本文一次告訴你。

Apple 公布新 MacBook Pro 召修計畫,部分機型充電有問題可免費更換電池

如果你的 2016、2017 年款 MacBook Pro 遇到電池電充不進去,怎麼充都無法超過 1%,電池健康狀態顯示為「建議進行維修」,請聯絡 Apple 以進行免費更換電池,在維修前服務人員也會檢查電腦以確認是否符合電池免費更換的資格;如果電池狀態顯示為「標準」則電池沒有受到此問題的影響。檢查電池健康度可由「系統偏好設定」的「電池」中查看。

此前,Apple 已經釋出了 macOS 更新以避免此問題發生在其他 2016、2017 年款 MacBook Pro 上,所以在聯繫更換前可以先將作業系統更新到 macOS Big Sur 11.2.1 或以上版本,或安裝 macOS Catalina 10.15.7 補充更新。

目前受影響的機型包含以下幾款:(可從電腦左上角的蘋果圖示 >> 關於這台Mac 中查看)

  • MacBook Pro(13 英寸,2016 年,兩個 Thunderbolt 3 埠)
  • MacBook Pro(13 英寸,2017 年,兩個 Thunderbolt 3 埠)
  • MacBook Pro(13 英寸,2016 年,四個 Thunderbolt 3 埠)
  • MacBook Pro(13 英寸,2017 年,四個 Thunderbolt 3 埠)
  • MacBook Pro(15 英寸,2016 年)
  • MacBook Pro(15 英寸,2017 年)

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

※回頭車貨運收費標準

全球染疫死亡病例 研究:15%與空污有關

摘錄自2020年10月27日中央社報導

由德國和賽普勒斯專家發表的研究報告登在醫學期刊「心血管研究」(Cardiovascular Research),研究中已經估算出武漢肺炎(COVID-19)死亡病例中,有一定比例得歸咎於空氣污染加劇帶來的影響。

研究人員估算出,全球各地的染疫死亡病例中,有約15%是空污造成的。報告作者發現,在全球有害污染水平最高的東亞,有27%的不治病例要歸咎於不良空氣品質對健康帶來的影響。

該研究的共同作者孟澤爾(Thomas Munzel)說:「假如長期暴露在空污之下,且同時感染了COVID-19,那將對健康產生不良影響,尤其在心臟和血管方面。」他說,空污會讓患者更可能出現導致COVID-19病情惡化的危險因子,像是肺部與心臟問題。

污染治理
國際新聞
空氣污染
COVID-19
疫情看氣候與能源

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

※回頭車貨運收費標準