如何使用Node.js后端记住iOS应用程序中的登录状态

如何使用Node.js后端记住iOS应用程序中的登录状态,ios,session,login,remember-me,Ios,Session,Login,Remember Me,我正在制作一个社交iOS应用程序。为了“记住”用户的登录状态,我到目前为止做了什么: 用户首次登录/创建新帐户时,应用程序会将其用户名和密码保存在keychain中,下次应用程序启动时,会将其保存在keychain中 (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // submit login } 应用提交keychain中

我正在制作一个社交iOS应用程序。为了“记住”用户的登录状态,我到目前为止做了什么:

  • 用户首次登录/创建新帐户时,应用程序会将其用户名和密码保存在keychain中,下次应用程序启动时,会将其保存在keychain中

    (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // submit login
    
    }

    应用提交keychain中的用户名/密码,自动登录用户

  • 在nodejs中,我将会话过期时间设置为2小时
  • 现在假设在应用程序启动并自动登录后,如果应用程序进入后台很长时间(超过2小时),然后切换回前台,用户是否不再登录

    如果登录状态消失,我如何保持登录状态?我能想到的是在中添加另一个自动登录逻辑

    - (void)applicationWillEnterForeground:(UIApplication *)application {
        // submit login
    }
    
    但这不会涉及太多的数据传输吗


    或者我可以在服务器端设置一个永久会话时间?这可能吗?

    实现此功能的最佳方法是为移动设备生成一个令牌密钥,该密钥可能会在很长一段时间内过期,您可以使其保持30天的活动状态,并且只有在用户手动注销后才会失效

    我的理解是,你指的是访问令牌?如何生成该访问令牌,是否有生成该令牌的算法?我看到OAuth可能能够做到这一点,尽管我还没有深入研究它,是吗?是的,OAuth具有生成令牌的功能,它将位于服务器端,客户端只需要存储它并将其作为密钥参数发送到API。下面是java的一个函数来生成它。