Codeigniter整合Tank Auth權(quán)限類庫(kù)詳解
相交其他CodeIgniter的類庫(kù),tank_auth,配置簡(jiǎn)單,使用也簡(jiǎn)單,并且作者也一直在更新,現(xiàn)在是1.0.9。1.0.8已經(jīng)支持CI2.0了,我現(xiàn)在一般的項(xiàng)目都是用它,所以推薦給大家。
安裝Tankauth的步驟
下載最新版類庫(kù)(下載地址:http://www.konyukhov.com/soft/tank_auth/tank_auth.zip)
解壓文件
將application下相應(yīng)的文件復(fù)制到你的CIapplication文件夾下。
將captcha文件夾復(fù)制到你的CI文件夾(項(xiàng)目目錄,和application同一個(gè)目錄)下.并確保該目錄在web服務(wù)器下可寫。
在你的MySQL數(shù)據(jù)庫(kù)里安裝數(shù)據(jù)庫(kù)(schema.sql文件)結(jié)構(gòu)。
在你的CI項(xiàng)目下打開application/config/config.php文件,并且把$config['sess_use_database']的值改為TRUE.
安裝完成!
如果訪問出現(xiàn)如下錯(cuò)誤:
AnErrorWasEncountered
InordertousetheSessionclassyouarerequiredtosetanencryptionkeyinyourconfigfile.
這個(gè)錯(cuò)誤提示需要一個(gè)密鑰。那么打開config.php,在$config['encryption_key']后面,隨便加一個(gè)密鑰即可。
TankAuth官網(wǎng)地址:http://www.konyukhov.com/soft/tank_auth/
如果出現(xiàn)了錯(cuò)誤,不要忘記看配置文件(tank_auth.php和email.php),安裝完成后類庫(kù)應(yīng)該可以完美工作了,但是根據(jù)你的服務(wù)器的條件和你的需要,最好有選擇性的修改一下。
提示:默認(rèn)情況下,類庫(kù)產(chǎn)生強(qiáng)大的系統(tǒng)特定的密碼哈系值是不可移植的,這就是說一旦創(chuàng)建,用戶數(shù)據(jù)庫(kù)就不能導(dǎo)出并導(dǎo)入到其他數(shù)據(jù)庫(kù)中,這個(gè)特性也可以通過配置文件修改。
Tankauth類庫(kù)的簡(jiǎn)單說明
類庫(kù)運(yùn)用了MVC模型,這也就是說所有的數(shù)據(jù)庫(kù)相關(guān)的方法都封裝在了模型(model)文件中,并且類庫(kù)本身作也為了這些方法的接口。控制器(auth)處相關(guān)請(qǐng)求,并調(diào)用類庫(kù)中的方法,渲染相應(yīng)的視圖(view)(顯示在瀏覽器中或以email方式發(fā)送)??刂破靼缦碌姆椒ǎ?/P>
login:用戶登錄網(wǎng)站。如果登錄成功,并且用戶賬戶是激活的,用戶將被重定向到首頁(yè)。如果未被激活,send_again將被調(diào)用(看下面)。如果登錄失敗,用戶將繼續(xù)留在相同頁(yè)面(登錄頁(yè)面);
logout:注銷用戶。
register:注冊(cè)用戶到網(wǎng)站。如果注冊(cè)成功,將創(chuàng)建一個(gè)用戶賬戶。如果在配置文件中的email_activation項(xiàng)的值被設(shè)置為TRUE,則用戶需要通過點(diǎn)擊發(fā)送到email中的特殊連接激活賬戶;否則默認(rèn)激活。請(qǐng)注意:注冊(cè)完后用戶并沒有通過登錄驗(yàn)證,仍然需要登錄。
send_again:再次發(fā)送激活email到相同或者新的email地址。當(dāng)為激活用戶登錄是,每次調(diào)用這個(gè)方法。當(dāng)用戶由于信箱的問題或者錯(cuò)誤的emial地址未收到信件時(shí),這個(gè)功能是非常有用的。用戶可以改變他們的email或者保持不變。
activate:激活用戶賬戶。通常這個(gè)方法是通過點(diǎn)擊email中的鏈接調(diào)用激活的??梢酝ㄟ^點(diǎn)擊”forgotpassword”,輸入email來激活賬戶。用戶是通過在URL中的用戶的Id和驗(yàn)證碼來認(rèn)證的。
forgot_password:生成特殊的重置碼(為了修改密碼)并發(fā)送給用戶。很顯然用戶在忘記密碼的時(shí)候才會(huì)用到該方法。
reset_password:用一個(gè)新的(用戶設(shè)置的)密碼替換舊的(忘記的)密碼。這個(gè)方法可以通過點(diǎn)擊郵件中的連接調(diào)用。用戶是通過在URL中的用戶的Id和驗(yàn)證碼來認(rèn)證的。
change_password:“正常的”密碼修改(相比于重置密碼)。只能在用戶登錄并且激活的時(shí)候才可調(diào)用。為了保證安全,仍然需要驗(yàn)證用戶秘密。
change_email:修改用戶的email。只能在用戶登錄并且激活的時(shí)候才可調(diào)用。為了保證安全,仍然需要驗(yàn)證用戶秘密。這個(gè)新的email只有通過點(diǎn)擊發(fā)到這個(gè)email中的鏈接才能被激活。
reset_email:激活新email地址并用一個(gè)新的email地址替換。可以通點(diǎn)擊郵件中的鏈接調(diào)用該方法。用戶是通過在URL中的用戶的Id和驗(yàn)證碼來認(rèn)證的。
unregister:刪除用戶賬戶。只能在用戶登錄并且激活的時(shí)候才可調(diào)用。為了保證安全,仍然需要驗(yàn)證用戶秘密。
既然auth控制器管理用戶的所以方法(包括登錄和注銷),所以你未必一定要直接調(diào)用類庫(kù)中的方法。但是下面這些是一定要調(diào)用的:
is_logged_in:檢測(cè)用戶是否登錄網(wǎng)站。
get_user_id:如果用戶登錄,獲得用戶Id,否則返回FALSE。
get_username:獲得驗(yàn)證用戶的用戶名,否則返回FALSE。如果該用戶名沒有注冊(cè),調(diào)用這個(gè)方法是無意義的(這時(shí)候任何用戶都將返回一個(gè)空的字符串)。
相關(guān)文章
淺談php fopen下載遠(yuǎn)程文件的函數(shù)
下面小編就為大家?guī)硪黄獪\談php fopen下載遠(yuǎn)程文件的函數(shù)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11PHP設(shè)計(jì)模式之外觀模式(Facade)入門與應(yīng)用詳解
這篇文章主要介紹了PHP設(shè)計(jì)模式之外觀模式(Facade),結(jié)合實(shí)例形式詳細(xì)分析了PHP外觀模式的具體原來、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-12-12通過php快速統(tǒng)計(jì)某個(gè)數(shù)據(jù)庫(kù)中每張表的數(shù)據(jù)量
在優(yōu)化數(shù)據(jù)庫(kù)的,或者在導(dǎo)入數(shù)據(jù)的時(shí)候,知道某個(gè)數(shù)據(jù)庫(kù)中哪張數(shù)據(jù)表的數(shù)據(jù)量最多,有時(shí)候?qū)ξ覀冞€是有幫助的2012-09-09PHP實(shí)現(xiàn)自動(dòng)加載機(jī)制
這篇文章主要介紹了PHP實(shí)現(xiàn)自動(dòng)加載機(jī)制,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07