android 单点登录功能

简介: android 单点登录功能

很多伙伴在开发自己公司产品的时候,一般都会考虑用户账号安全 ,或者用户账号功能使用限制等问题。这时候我们就会考虑到单点登录这个功能。


一般情况下我们在开发单点登录功能的时候,其实有很多种做法,这个根据自己的具体需求选择就可以,其实我一直认为很多东西没有绝对的规则,我们其实需要做的是尽量全面的尽可能多的去掌握更多的知识技术,当我们用到的时候可以从中选择出最适合自己的产品的技术,从开发时间,应用性等。


好了 ,多说了几句题外话,我们现在言归正传,说说我做单点登录的实现方式。


1.创建token


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


android 中获取机器唯一标示 deviceid

  //deviceId
    public static String getDeviceId(Context context) {
        TelephonyManager tm = (TelephonyManager) context.getSystemService(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;
    }

上面说了自己用自己的业务系统实现app单点的基本流程。

相关文章
|
1月前
|
XML 缓存 Android开发
Android开发,使用kotlin学习多媒体功能(详细)
Android开发,使用kotlin学习多媒体功能(详细)
111 0
|
1月前
|
数据安全/隐私保护 Android开发
2023安卓逆向 -- 某合伙apk登录加密分析
2023安卓逆向 -- 某合伙apk登录加密分析
41 0
|
8天前
|
数据库 Android开发 数据安全/隐私保护
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
51 2
|
10天前
|
Android开发
Android中如何快速的实现RecycleView的拖动重排序功能
使用`ItemTouchHelper`和自定义`Callback`,在`RecyclerView`中实现拖动排序功能。定义`ItemTouchHelperAdapter`接口,`Adapter`实现它以处理`onItemMove`方法。`SimpleItemTouchHelperCallback`设置拖动标志,如`LEFT`或`RIGHT`(水平拖动),并绑定到`RecyclerView`以启用拖动。完成这些步骤后,即可实现拖放排序。关注公众号“AntDream”获取更多内容。
16 3
|
21天前
|
XML Android开发 数据格式
【Android UI】使用RelativeLayout与TableLayout实现登录界面
【Android UI】使用RelativeLayout与TableLayout实现登录界面
27 5
|
1月前
|
移动开发 监控 Android开发
构建高效Android应用:从内存优化到电池寿命代码之美:从功能实现到艺术创作
【5月更文挑战第28天】 在移动开发领域,特别是针对Android系统,性能优化始终是关键议题之一。本文深入探讨了如何通过细致的内存管理和电池使用策略,提升Android应用的运行效率和用户体验。文章不仅涵盖了现代Android设备上常见的内存泄漏问题,还提出了有效的解决方案,包括代码级优化和使用工具进行诊断。同时,文中也详细阐述了如何通过减少不必要的后台服务、合理管理设备唤醒锁以及优化网络调用等手段延长应用的电池续航时间。这些方法和技术旨在帮助开发者构建更加健壮、高效的Android应用程序。
|
10天前
|
存储 数据库 Android开发
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
14 0
|
1月前
|
Android开发 数据安全/隐私保护 iOS开发
ios和安卓测试包发布网站http://fir.im的注册与常用功能
ios和安卓测试包发布网站http://fir.im的注册与常用功能
25 0
ios和安卓测试包发布网站http://fir.im的注册与常用功能
|
1月前
|
机器学习/深度学习 人工智能 TensorFlow
安卓中的人工智能:集成机器学习功能
【4月更文挑战第14天】在数字化时代,人工智能与机器学习正驱动安卓平台的技术革新。谷歌的ML Kit和TensorFlow Lite为开发者提供了便捷的集成工具,使得应用能实现图像识别、文本转换等功能,提升用户体验。尽管面临数据隐私和安全性的挑战,但随着技术进步,更强大的AI功能将预示着移动端的未来,为开发者创造更多创新机遇。
|
1月前
|
Android开发
Android SystemUI去掉拖动亮度条QSPanel界面隐藏功能
Android SystemUI去掉拖动亮度条QSPanel界面隐藏功能
34 0