1. 引言

上一節(jié)我們講解了如何創(chuàng)建微信公眾號(hào)模塊,這一節(jié)我們就繼續(xù)跟進(jìn),來講一講公眾號(hào)模塊如何與系統(tǒng)進(jìn)行交互。
微信公眾號(hào)模塊作為一個(gè)獨(dú)立的web模塊部署,要想與現(xiàn)有的【任務(wù)清單】進(jìn)行交互,我們要想明白以下幾個(gè)問題:

  1. 如何進(jìn)行交互?
    ABP模板項(xiàng)目中默認(rèn)創(chuàng)建了webapi項(xiàng)目,其動(dòng)態(tài)webapi技術(shù)允許我們直接訪問appservice作為webapi而不用在webapi層編寫額外的代碼。所以,自然而然我們要通過webapi與系統(tǒng)進(jìn)行交互。

  2. 通過webapi與系統(tǒng)進(jìn)行交互,如何確保安全?
    我們知道暴露的webapi如果不加以授權(quán)控制,就如同在大街上裸奔。所以在訪問webapi時(shí),我們需要通過身份認(rèn)證來確保安全訪問。

  3. 都有哪幾種身份認(rèn)證方式?
    第一種就是大家熟知的cookie認(rèn)證方式;
    第二種就是token認(rèn)證方式:在訪問webapi之前,先要向目標(biāo)系統(tǒng)申請令牌(token),申請到令牌后,再使用令牌訪問webapi。Abp默認(rèn)提供了這種方式;
    第三種是基于OAuth2.0的token認(rèn)證方式:OAuth2.0是什么玩意?建議先看看OAuth2.0 知多少以便我們后續(xù)內(nèi)容的展開。OAuth2.0認(rèn)證方式彌補(bǔ)了Abp自帶token認(rèn)證的短板,即無法進(jìn)行token刷新。

基于這一節(jié),我完善了一個(gè)demo,大家可以直接訪問http://shengjietest.azurewebsites.net/進(jìn)行體驗(yàn)。

下面我們就以【通過webapi請求用戶列表】為例看一看三種認(rèn)證方式的具體實(shí)現(xiàn)。

2. Cookie認(rèn)證方式

Cookie認(rèn)證方式的原理就是:在訪問webapi之前,通過登錄目標(biāo)系統(tǒng)建立連接,將cookie寫入本地。下一次訪問webapi的時(shí)候攜帶cookie信息就可以完成認(rèn)證。

2.1. 登錄目標(biāo)系統(tǒng)

這一步簡單,我們僅需提供用戶名密碼,Post一個(gè)登錄請求即可。
我們在微信模塊中創(chuàng)建一個(gè)

網(wǎng)友評論