簡體   English   中英

社交網絡登錄使用 iOS

[英]Social networking login using iOS

我正在編寫一個適用於我自己的服務器的 iPhone 應用程序。

基本上,這是一個用戶可以發帖的論壇。 我不希望用戶在我的服務器上登錄帳戶,但我更希望他們使用他們擁有的任何現有帳戶登錄:Facebook、Linkedin、Foursquare 等。所以從應用程序本身來看,我希望他們能夠使用他們現有的帳戶登錄,這將允許他們在論壇上發帖。

我的問題是:當用戶發布消息時,我如何驗證他是否使用任何服務登錄? 我需要在客戶端和服務器端都驗證它。 我計划使用 PHP 編寫服務器端。

謝謝

有關類似討論,請參閱此問題(僅限於 Facebook 登錄)。 這是應該發生的事情的高級概述(取自我鏈接到的那個討論):

  1. 用戶在手機上打開應用程序。 選擇進行身份驗證的服務。
  2. 通過一項可用服務(Facebook、Twitter、foursquare 等)進行身份驗證並獲得一些特殊的access token
  3. 您的應用程序獲取令牌並將其發送到您的服務器。
  4. 您的服務器接收令牌並對其進行驗證。 它根據服務的 API 進行檢查,並(至少對於 Facebook 和 Twitter)獲取相應的用戶 ID。
  5. 假設一個有效的 ID,您的服務器會檢查用戶 ID 是否已被某個用戶使用。 如果是這樣,它會將他們登錄。如果尚未創建用戶 ID,則您的服務器會創建與該用戶 ID 關聯的自己的用戶記錄並讓用戶登錄。在任何一種情況下,用戶最終都會登錄並且您的服務器會發出問題您的應用程序的session key
  6. session key用於您的應用程序和服務器之間的所有進一步通信,直到用戶注銷。

在電話上,您將需要一些 OAuth 庫來允許用戶使用其他服務進行身份驗證。 You'll probably want to use the Facebook iOS SDK to allow them to use Facebook and use one of the suggested OAuth libraries here for your other authentication services. 我只使用了 Facebook SDK,所以我不能說一般的 OAuth 庫。

登錄后,手機不應存儲access token ,僅存儲session key

假設用戶可以使用多個服務來訪問他們的帳戶,您還需要某種方式將兩個服務連接到同一用戶(可能通過 email 地址)。

由您決定您的應用程序和服務器的通信方式。 我將 go 用於 JSON+REST API 用於與服務器通信。

我正在探索 2020 年是否存在更好/易於使用/實施的選項,使用第三方庫允許使用社交帳戶登錄。 並找到了兩個選項:

  1. AuthorizeMe - https://github.com/rubygarage/authorize-me & https://rubygarage.org/blog/authorizeme-ios-libary
  2. Auth0 - https://auth0.com/learn/social-login/ & https://auth0.com/blog/using-centralized-login-to-add-authentication-to-your-ios-apps/

AuthorizeMe 支持:

  1. Facebook
  2. Twitter
  3. 谷歌
  4. Instagram
  5. 領英

加上自定義提供程序

Auth0 支持:

  1. Facebook
  2. Twitter
  3. 谷歌
  4. 微軟(Windows Live)
  5. 雅虎
  6. Instagram
  7. 亞馬遜
  8. 領英
  9. Github
  10. PayPal
  11. vKontakte
  12. Yandex
  13. 盒子
  14. 百度
  15. 任人(小內)
  16. 微博
  17. Shopify
  18. Wordpress
  19. 抱怨
  20. 聲雲

以及自定義提供程序

免責聲明:我不隸屬於 Auth0 或 AuthorizeMe。

讓您的用戶使用多種服務登錄的另一個選擇是 Socialize (www.getsocialize.com)。 它是一個開源 SDK 管理您的用戶和身份驗證,因此您不必實施 cbrauchli 上面列出的所有步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM