android 单点登录功能

首先我们要在服务端创建一个token的值,这个值是和userid以及手机码绑定到一起的,也就是请求token的时候我们要给服务端传递当前设备的设备号及用户id。token这个值就是客户端调用服务端的凭证。

android 中获取机器唯一标示 deviceid

//deviceId

public static String getDeviceId(Context context) {

TelephonyManager tm = (TelephonyManager) context.getSys
temService(Context.TELEPHONY_SERVICE);

if (tm == null) {

return “”;

}

return “” + tm.getDeviceId();

}

但是这个很多机器是无法获取到的这个值,所以后来改为mac地址, mac地址很好理解,就是用户上网的上网许可证,这个买手机的时候,你翻开电池就知道里面有一个标签!

/**

  • 获取MAC地址,注意:手机重启,mac地址为null;

  • @param context

  • @return mac地址;

*/

public static String getMac(Context context) {

if (context != null) {

WifiManager wifi = (WifiManager) context

.getSystemService(Context.WIFI_SERVICE);

WifiInfo info = wifi.getConnectionInfo();

return info.getMacAddress();

} else {

return “”;

}

}

2.获取token

app进入app时要先获取token,获取token的时候我们要给服务端传递当前设备的设备号,当我们换了设备后设备号变了,返回的token值也就变了,那么原设备的token相对来说就失效了,当在原设备和服务端有交互的时候就会返回token失效,用户登陆注销等要及时更新token值。

3.请求交互携带token

每次客户端和服务端有任何交互的时候都要传递这个token参数,当我们在另一台设备登录的时候原设备上存的token就失效了,因为数据库里面当前用户的token已经在新设备获取toekn的时候覆盖了,这样原设备请求时就会提示token失效了。

4.根据服务端返回码处理逻辑

事先客户端和服务端要约定好一个code码,例如:我们约定返回码为99的时候代表token失效,那么当我们请求服务端返回值为99的时候就要提示 您的登陆状态失效,请您重新登陆。

switch (code) {

case 1:

break;

case 99://被踢下线

//Do Something

break;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值