PHP 實現基於使用者 token 驗證的防異處登入

2021-10-01 23:41:39 字數 1369 閱讀 5932

一、使用場景

二、實現思路

三、效果描述

當使用者按照流程註冊登入後,生成第一次的加密隨機字串和 token ,返回給客戶端正常通過驗證獲取其他介面資料,當此賬號在另乙個裝置登入時,此賬號的隨機字串和 token 被更新,在當前裝置請求介面時,token 比對不正確,提示退出登入。

四、部分**(thinkphp5)

使用者登入:

$account

=$params

['account'];

$password

=$params

['password'];

// 省略判斷賬號是否存在和密碼是否正確

// 生成隨機字串

// createrandstr()需要自己封裝

$salt

=createrandstr()

;// 加密成 token

$token

=md5

($account

.$pwd

.$salt);

// 更新到資料庫

$update

= db:

:name

('member')-

>

where

('account'

,$account)-

>

update([

'salt'

=>

$salt

,'token'

=>

$token])

;// 返回到客戶端

// result()方法需自己封裝

$this

->

result

('登入成功',[

'account'

=>

$account

,'token'

=>

$token],

200)

;

介面初始化公共方法:

public

function

_initialize()

// token驗證放在了model中

$model

=new

check()

;if(!

$model

->

check

($account

,$token))

}

模型 token 驗證:

public

function

check

($account

,$token

)else

}

基於redis實現token驗證使用者是否登陸

基於專案需求,我們要實現乙個基於redis實現token登入驗證,該如何實現呢 後端實現 1.引入redis相關的依賴 程式設計客棧 dependency org.springframework.bootaycpthgroupid spring boot starter data redis org...

springboot基於token實現登入認證

最近因為專案需求,需採用token的方式實現登入認證,而不再使用session的方式登入,因而採用springboot整合jwt生成token實現登入認證。1.首先新增jwt所需jar包 io.jsonwebtoken groupid jjwt artifactid 0.7.0 version de...

SpringBoot實現基於token的登入驗證

springboot實現基於token的登入驗證 基於token的登入驗證實現原理 客戶端通過使用者名稱和密碼呼叫登入介面,當驗證資料庫中存在該使用者後,將使用者的資訊按照token的生成規則,生成乙個字串token,返回給客戶端,客戶端在呼叫其他介面的時候,需要在請求頭上帶上token,來驗證登入...