国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Pyramid內(nèi)建基礎(chǔ)認(rèn)證

LeanCloud / 1566人閱讀

摘要:原文地址在中實(shí)際上是提供了基礎(chǔ)認(rèn)證的我們可以通過如下的方式進(jìn)行導(dǎo)入而在中將安全系統(tǒng)拆分為認(rèn)證和權(quán)限。這里我們來看下最簡單的基礎(chǔ)認(rèn)證。如果是自定義認(rèn)證類我們是可以在失敗的時(shí)候返回的對(duì)于系統(tǒng)內(nèi)建的基礎(chǔ)認(rèn)證類我們?cè)诨卣{(diào)時(shí)只能返回。

原文地址:

http://52sox.com/pyramid-basi...

在Pyramid中實(shí)際上是提供了基礎(chǔ)認(rèn)證的,我們可以通過如下的方式進(jìn)行導(dǎo)入:

from pyramid.authentication import BasicAuthAuthenticationPolicy

而在Pyramid中,將安全系統(tǒng)拆分為認(rèn)證和權(quán)限。這里我們來看下最簡單的HTTP基礎(chǔ)認(rèn)證(BasicAuth Authentication)。
對(duì)于第1次使用Pyramid的人來說,會(huì)覺得這個(gè)框架很復(fù)雜,當(dāng)然這話是相當(dāng)于使用Django、Flask這樣的開發(fā)人員來說的。
在Pyramid中,我們無法多帶帶使用認(rèn)證,其需要提供1個(gè)權(quán)限類一起使用,這里我們導(dǎo)入ACL這個(gè)權(quán)限控制類:

from pyramid.authorization import ACLAuthorizationPolicy

下面我們來看下完整的代碼:

from pyramid.authentication import BasicAuthAuthenticationPolicy
from pyramid.authorization import ACLAuthorizationPolicy
from pyramid.config import Configurator
from pyramid.httpexceptions import HTTPUnauthorized
from pyramid.view import view_config
from wsgiref.simple_server import make_server


@view_config(name="",renderer="json")
def index(request):
    realm = "You must tell me your measurements or I know you are an adult"
    if not req.authenticated_userid:
        return HTTPUnauthorized(headers=[("WWW-Authenticate", "Basic realm="%s"" % realm)])
    return {"data":"some data require authenticated."}

def callback(username,pwd,req):
    users = {
        "zhangsan":"123456",
        "lisi":"111111",
        "wangwu":"888888"
    }
    passwd = users.get(username)
    if passwd == pwd:
        return True
    return None

通過這么近20行的代碼,我們已經(jīng)實(shí)現(xiàn)了1個(gè)簡單的HTTP版本的基礎(chǔ)認(rèn)證。在這里,當(dāng)認(rèn)證不通過的時(shí)候,我們需要在響應(yīng)頭中返回WWW-Authenticate才會(huì)出現(xiàn)類似如下的界面:

然后接下來是配置的部分了:

config = Configurator()
basic_policy = BasicAuthAuthenticationPolicy(callback)
auth_polocy = ACLAuthorizationPolicy()
config.set_authentication_policy(basic_policy)
config.set_authorization_policy(auth_polocy)
config.scan()
app = config.make_wsgi_app()
server = make_server("127.0.0.1",8000,app)
server.serve_forever()

在這里我們通過實(shí)例化Configurator生成1個(gè)配置對(duì)象。然后我們通過set_authentication_policyset_authorization_policy方法分別設(shè)置認(rèn)證策略和權(quán)限策略。
在Pyramid中,wsgi應(yīng)用是通過配置對(duì)象的make_wsgi_app方法生成的。
需要注意的是,在這里,我們?cè)?b>BasicAuthAuthenticationPolicy類中傳入了1個(gè)函數(shù)的名稱,用于回調(diào)處理來判斷其認(rèn)證是否成功。如果是自定義認(rèn)證類,我們是可以在失敗的時(shí)候返回False的,對(duì)于系統(tǒng)內(nèi)建的基礎(chǔ)認(rèn)證類,我們?cè)诨卣{(diào)時(shí)只能返回None。
上述的寫法只是Pyramid中的1種方式,我們還可以通過其他的方式來實(shí)現(xiàn)相同的效果。雖然,第1次使用pyramid的時(shí)候,會(huì)覺得不怎么順手,但是隨著深入學(xué)習(xí),你會(huì)發(fā)現(xiàn)Pyramid其實(shí)還是挺靈活的,只是相比Flask、Django這樣的框架要寫的代碼會(huì)更多一些。
最后,在實(shí)例化BasicAuthAuthenticationPolicy類時(shí),我們還可以傳入?yún)?shù)debug來開啟這個(gè)認(rèn)證類的調(diào)試,其結(jié)果將記錄到日志中。

參考文章:

http://docs.pylonsproject.org...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/44224.html

相關(guān)文章

  • 2018年最佳JavaScript數(shù)據(jù)可視化和圖表庫

    摘要:它有什么圖表加粗文字如何使用這個(gè)圖表庫可以通過存儲(chǔ)庫下載或通過包管理器安裝。數(shù)據(jù)可以直接從文件加載到圖表中。它有什么圖表如何使用該庫可在包管理器和他們自己的內(nèi)容傳送網(wǎng)絡(luò)中使用。該庫專為風(fēng)格的數(shù)據(jù)可視化而設(shè)計(jì),提供一系列高度可配置的圖表。 現(xiàn)在有很多圖表庫,但哪一個(gè)最好用?這可能取決于許多因素,如業(yè)務(wù)需求,數(shù)據(jù)類型,圖表本身的目的等等。在本文中,每個(gè)JavaScript圖表庫將與一些關(guān)鍵...

    terasum 評(píng)論0 收藏0
  • 2018年最佳JavaScript數(shù)據(jù)可視化和圖表庫

    摘要:它有什么圖表加粗文字如何使用這個(gè)圖表庫可以通過存儲(chǔ)庫下載或通過包管理器安裝。數(shù)據(jù)可以直接從文件加載到圖表中。它有什么圖表如何使用該庫可在包管理器和他們自己的內(nèi)容傳送網(wǎng)絡(luò)中使用。該庫專為風(fēng)格的數(shù)據(jù)可視化而設(shè)計(jì),提供一系列高度可配置的圖表。 現(xiàn)在有很多圖表庫,但哪一個(gè)最好用?這可能取決于許多因素,如業(yè)務(wù)需求,數(shù)據(jù)類型,圖表本身的目的等等。在本文中,每個(gè)JavaScript圖表庫將與一些關(guān)鍵...

    dreambei 評(píng)論0 收藏0
  • 2018年最佳JavaScript數(shù)據(jù)可視化和圖表庫

    摘要:它有什么圖表加粗文字如何使用這個(gè)圖表庫可以通過存儲(chǔ)庫下載或通過包管理器安裝。數(shù)據(jù)可以直接從文件加載到圖表中。它有什么圖表如何使用該庫可在包管理器和他們自己的內(nèi)容傳送網(wǎng)絡(luò)中使用。該庫專為風(fēng)格的數(shù)據(jù)可視化而設(shè)計(jì),提供一系列高度可配置的圖表。 現(xiàn)在有很多圖表庫,但哪一個(gè)最好用?這可能取決于許多因素,如業(yè)務(wù)需求,數(shù)據(jù)類型,圖表本身的目的等等。在本文中,每個(gè)JavaScript圖表庫將與一些關(guān)鍵...

    archieyang 評(píng)論0 收藏0
  • CSS 3D transforms

    摘要:https://www.creativebloq.com/css3/20-stunning-examples-css-3d-transforms-11112759 https://github.com/fofr/paulrhayes.com-experiments Experiment: A tetrahedron built with CSS 3D transform...

    tainzhi 評(píng)論0 收藏0
  • CSS 繪制各種形狀

    摘要:說明使用可以繪制出許多形狀,比如三角形梯形圓形橢圓,等并不只是可以繪制矩形。前面后面左面右面下面查看示例總結(jié)文中實(shí)現(xiàn)的各種形狀,也許你覺得實(shí)現(xiàn)的很復(fù)雜,其實(shí)你也可以使用這一個(gè)屬性,繪制各種形狀。 說明 使用 CSS 可以繪制出許多形狀,比如三角形、梯形、圓形、橢圓,等 并不只是可以繪制矩形。下面來看看怎么實(shí)現(xiàn)這些形狀的吧。為了容易理解,文章分為基本形狀 和 組合形狀來說,基本形狀是比較...

    3fuyu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<