使用ios instagram登录的https PHP/MySql Web服务

使用ios instagram登录的https PHP/MySql Web服务,php,ios,mysql,web-services,instagram-api,Php,Ios,Mysql,Web Services,Instagram Api,我在想些什么。我想创建一个从ios/android应用程序访问数据库的web服务。现在,我希望用户能够通过Instagram API登录应用程序 我对它们是如何结合在一起感到有点困惑。显然,第一步是使用Instagram登录。那我该怎么办?我想将我收到的这些用户信息(至少是用户名/ID)与其他一些并非来自Instagram的信息(如位置)一起保存到数据库中。所有这些都是安全的。我可以用instagram代币吗?我在这个过程中有点被卡住了…要想做你想做的事情,最简单的方法就是做一个Rest Web

我在想些什么。我想创建一个从ios/android应用程序访问数据库的web服务。现在,我希望用户能够通过Instagram API登录应用程序


我对它们是如何结合在一起感到有点困惑。显然,第一步是使用Instagram登录。那我该怎么办?我想将我收到的这些用户信息(至少是用户名/ID)与其他一些并非来自Instagram的信息(如位置)一起保存到数据库中。所有这些都是安全的。我可以用instagram代币吗?我在这个过程中有点被卡住了…

要想做你想做的事情,最简单的方法就是做一个Rest Web服务

使用此Web服务,您的iOS和Android应用程序都将能够连接并发送/获取数据

您的Web服务应该负责管理所有数据,保存或从数据库获取信息。并且还可以负责用户身份验证

要与您的Web服务对话,您的应用程序可以使用JSON。因此,您应该学习如何发送和解析JSON

祝你好运

有用链接:

更新

要将instagram用户与数据库关联,您可以使用提供的用户id:

{
    "access_token": "fb2e77d.47a0479900504cb3ab4a1f626d174d2d",
    "user": {
        "id": "1574083",
        "username": "snoopdogg",
        "full_name": "Snoop Dogg",
        "profile_picture": "..."
    }
}

请参阅:

完成步骤3后(步骤3非常简单,我将不再讨论),因为您的问题是如何将Instagram数据与数据库集成,您应该会收到以下json:

{
    "access_token": "fb2e77d.47a0479900504cb3ab4a1f626d174d2d",
    "user": {
        "id": "1574083",
        "username": "snoopdogg",
        "full_name": "Snoop Dogg",
        "profile_picture": "..."
    }
}
如何处理数据是一个架构问题:

1)您的用户可以通过instagram或常规用户名/密码进行授权

创建同时具有密码字段和instagram用户id的用户表:

您的用户表可能如下所示:

CREATE TABLE users (
    id INT AUTO_INCREMENT NOT NULL ,
    username VARCHAR(255) NOT NULL,
    password VARCHAR(255) DEFAULT NULL,
    instagram_userid INT DEFAULT NULL,
    instagram_accesstoken VARCHAR(255) DEFAULT NULL,
    PRIMARY KEY(id)
);
用户通过Instagram进行身份验证时,您应该:

  • 查找您使用表中的行,该行具有instagram api返回的相同instagram_用户ID
  • 如果instagram_用户ID已经存在,您应该立即在应用程序中对您的用户进行身份验证(例如,使用会话/cookie,即您一生中的惯常方式)
  • 如果instagram_用户ID不存在,则应创建一个用户行,其中的用户名由instagram API返回。还使用会话对该用户进行身份验证
  • 2)Instagram是您进行身份验证的唯一用户选择

    然后,您应该创建一个用户表,该表只是instagram api返回的镜像。您可以将instagram_userid作为主键:

    CREATE TABLE users (
        username VARCHAR(255) NOT NULL,
        instagram_userid INT DEFAULT NULL,
        instagram_accesstoken VARCHAR(255) DEFAULT NULL,
        PRIMARY KEY(instagram_userid)
     );
    
  • 用户通过Instagram API进行身份验证时,应在用户表中搜索与Instagram API返回的id相同的行
  • 如果该行存在,请在应用程序中验证该用户
  • 如果该行不存在,请创建该行并对用户进行身份验证
  • 账户合并

    如果您的应用程序同时处理用户名/密码身份验证和其他身份验证提供商,您应该预料到用户可能会忘记他是通过您的应用程序使用lets way Instagram Auth注册的,并尝试通过用户名/密码进行身份验证。如果发生这种情况,您可以提供一种合并帐户的方法,而不是复制帐户。例如,如果用户Instagram电子邮件作为用户名存在于您的数据库中,则应使用Instagram api数据更新此行,而不是假设其为新帐户。这样,您的用户就可以同时使用usuername/password和Instagram进行身份验证

    访问令牌


    instagram访问令牌已存储,但未使用。为什么?因为它将用于获取instagram数据,如用户的帖子、好友列表等。如果您想这样做,您不应该假设令牌是有效的,因为它可能会过期,所以您应该处理令牌过期问题,并提供一种方法让用户再次验证。

    谢谢。我很清楚。只是我不知道如何将instagram登录与我的数据库交叉。假设我使用instagram登录,这将为我提供instagram中的某些数据。我需要在数据库中保存哪些信息才能始终与instagram和我的数据库保持关联?是的,您可以选择userlogin或email,并将其用作唯一的登录字段。使用这些信息或不可变的内容为密码生成一些哈希。