php开发app接口,用户登录问题
情况是这样的,之前的用户登录接口,登录成功以后服务器不存session
,可能在app那端存着吧。所以即便用户登录成功,在调某些接口的时候,需要user_id
还是要当作参数传递过去,而不是从服务器的 session
里获取。
今天想修改登录注册的接口,我同事说app接口没有session
的概念,但是我总觉得应该有其他方式将用户会话存在服务器。
所以我想请教各位大神:
1. php开发app接口有没有`session`的概念?
2. 如果没有,用户会话是怎么处理的?就是当前是否在登录状态
谢谢大家!
jwt를 살펴보세요
자체 포함: 페이로드에는 사용자에게 필요한 모든 정보가 포함되어 있습니다
토큰과 만료시간을 설정하고, 토큰을 사용하여 인증합니다
먼저 앱이 이 인터페이스를 호출하는 경우 전달된 사용자 이름과 비밀번호를 확인한 후 토큰을 반환합니다.
Token은 저장할 테이블을 생성하며, 테이블은 user_id 토큰 만료_data 및 기타 필드를 저장합니다. 토큰과 user_id는 고유합니다.
앞으로는 그가 다른 인터페이스를 요청할 때마다 이 토큰만 가져오면 되며 토큰을 확인할 수 있습니다.
전달된 토큰은 기본적으로 고유한 것으로 암호화/만료/보장됩니다.
1. 요청 헤더에 사용자
username
및password
를 가져와서 확인을 위해 서버로 이동한 다음 요청을 통과한 후 비즈니스 로직을 계속 진행합니다.장점: 서버 측
api
가 마음대로 호출되는 것을 방지합니다.단점: 사용자 이름과 비밀번호가 매번 교환되고 상호 작용량이 많고 비밀번호 일반 텍스트 전송이 안전하지 않습니다.
username
和password
,到服务器端做验证,通过才继续下边业务逻辑。优点:防止了服务器端
api
被随意调用。缺点:每次都交互用户名和密码,交互量大,且密码明文传输不安全。
2.第一次请求,要求
username
和password
,验证通过,发送cookie
到客户端,app
保存cookie
值。每次请求带上
cookie
。优点:和
pc
上浏览器认证的原理一样了。以上两点,只有注册用户,才能有权访问业务逻辑。
而有些
app
有大量的不需要注册数据api3.制定一个
🎜위 두 가지 사항에서 등록된 사용자만 비즈니스 로직에 접근할 수 있습니다.token
生成规则,按某些服务器端和客户端都拥有的共同属性生成一个随机串,客户端生成这个串,服务器收到请求也校验这个串。缺点:随机串生成规则要保密。
그리고 일부
앱
에는 등록 데이터가 필요하지 않은 API가 많이 있습니다🎜 🎜3. 서버와 클라이언트가 공유하는 몇 가지 공통 속성을 기반으로 임의의 문자열을 생성하는token
생성 규칙을 개발하고, 서버는 요청을 받으면 이 문자열을 확인합니다. .단점: 무작위 문자열 생성 규칙은 기밀로 유지되어야 합니다. 🎜
이렇게 할 수 있습니다. 다양한 사용자가 인증 인터페이스를 통해 서로 다른 토큰을 얻고, 토큰의 만료 시간을 설정하고, 클라이언트가 각 요청의 헤더에 토큰을 넣도록 하고, 토큰을 정기적으로 업데이트합니다
토큰을 사용하여 클라이언트 쿠키에 저장된 기존의 session_id를 대체한 다음 토큰은 redis와 같은 데이터베이스에서 키 이름으로 사용되며 키 값은 사용자 uid이며 session_id는 내장된 기능을 통해 시뮬레이션할 수 있습니다. 만료 메커니즘
저희 회사에는 토큰과 만료 시간이 있습니다. 로그인할 때마다 토큰이 갱신됩니다
궁금할 때 저희 사이트에 물어본 내용입니다
동료가 앱에 세션 개념이 없다고 해서 정확하지 않은 것 같아요! 이전 질문이 도움이 되었기를 바랍니다.
로그인은 서버가 로그인에 성공한 ID를 생성하여 클라이언트에 반환하는 것입니다. 클라이언트 요청은 로그인 ID를 가져오고, 서버는 로그인을 통해 사용자 정보를 확인합니다.
안전한 방법은
access_token
입니다. 이 시점에서 WeChat의 API 인터페이스를 살펴볼 수 있습니다.access_token
。这点可以看看微信的api接口;简单做法,就是
간단한 방법은user_id
user_id
입니다.🎜