Sign in with Apple-一個全新的登錄體驗

一、什麼是Sign in with Apple?

Sign in with Apple是蘋果公司推出的一項新的身份驗證技術,它為用戶提供了一種方便安全且私密的登錄方式,使其可以使用Apple ID登錄應用和網站。

Sign in with Apple的最主要特點是,用戶無需提供與自己的Apple ID相關的任何真實信息,就可以輕鬆地登錄應用或網站。與此同時,作為開發者,使用Sign in with Apple可以輕鬆地將登陸信息集成到自己的應用或網站中,從而提供更加簡單且可靠的登錄流程。與其他登錄方式相比,Sign in with Apple具有以下優點:

  • 過程簡單:採用了類似於一鍵登錄的方式,僅需點擊幾下即可完成登錄,從而提高用戶的使用體驗。
  • 安全可靠:通過限制第三方應用的訪問,確保用戶的使用數據更加安全,同時實現了無需提供真實信息即可註冊登錄。
  • 保護隱私:用戶只需提供必要的信息,例如名字、郵箱等,無需提供與個人隱私相關的敏感信息,從而保護了用戶的隱私安全。

二、使用Sign in with Apple的步驟

我們將以一個簡單的示例來介紹如何使用 Sign in with Apple。

1.創建開發者賬戶

在使用Sign in with Apple之前,您需要擁有一個蘋果開發者賬戶,並創建一個用於程序開發的App ID。同樣,您需要將該App ID與您將要使用Sign in with Apple的應用程序相關聯。

//創建蘋果開發者賬戶
https://developer.apple.com/account/

2.配置蘋果登錄

在進行應用程序的開發過程中,需要進行相應的配置以便使用Sign in with Apple功能。首先打開Xcode並打開項目的Info.plist文件,接下來在其中添加下列代碼。

<key>Sign In with Apple</key>
<dict>
  <key>ClientId</key>
  <string>com.your.app.bundleid</string>
  <key>Scope</key>
  <string>email name</string>
  <key>Provider</key>
  <string>com.apple.AuthenticationServic</string>
</dict>

3.添加Sign in with Apple按鈕

可以自定義使用Sign in with Apple的按鈕,也可以使用預設的按鈕。添加一個按鈕可以使用戶能夠使用Sign in with Apple登錄您的應用或網站,並獲得與他們的 Apple ID 相關聯的帳戶。

//使用自定義的Sign in with Apple按鈕
<button type="button" class="sign-in-with-apple">
<span class="logo"></span>
<span class="text">Sign in with Apple</span>
</button>

//使用預設的Sign in with Apple按鈕
<style>
 .signin {
    /*顏色參數*/
    --sign-color: #000;
    --sign-background: #fff;
    /*圓角參數*/
    --sign-border-radius: 99px;
    /*高/寬*/
    height: 44px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 17px;
    font-weight: 500;
    color: var(--sign-color);
    background-color: var(--sign-background);
    border-radius: var(--sign-border-radius);
  }
 
  .signin > img {
    margin-right: 11px;
    height: 20px;
    width: 20px;
  }
 
  .signin.dark {
    --sign-color: #fff;
    --sign-background: #000;
    --sign-border-color: rgba(0,0,0,0.40);
  }

 

三、合法性檢查與回調

成功的登錄後,Sign in with Apple將向您的應用程序發送一個授權令牌。該令牌包含有關用戶和您的應用程序之間驗證的數據,您的應用程序將使用該令牌來驗證用戶是否有效。

//下面是使用Swift編寫的一個回調函數的代碼示例
func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
 
  if let appleIDCredential = authorization.credential as? ASAuthorizationAppleIDCredential {
    let userIdentifier = appleIDCredential.user
    let fullName = appleIDCredential.fullName
    let email = appleIDCredential.email
    
    // 使用獲取到的用戶信息判斷是否需要在自己服務器上新建或修改用戶信息並完成登錄操作
    // 此處代碼省略
    
    //檢查用戶是否是第一次使用Signin With Apple登錄(憑據長度是否為0),從而選擇登錄或註冊操作
    if appleIDCredential.authorizationCode?.count ?? 0 > 0 {
      //code for registration/authentication 
    } else {
      //user logged in using Signin with Appls
    }
    
    // 保存驗證憑據以在以後的身份驗證時使用
    let credentialsUser = appleIDCredential.user
    let credentialsState = appleIDCredential.state
    let appleIdCredentialRawData = appleIDCredential.credentialRawData
    
    //完成登錄並進入應用主頁面
    // 此處代碼省略
  }
}

四、Sign in with Apple的安全性?

Sign in with Apple被設計為一種強大的安全身份驗證技術。通過使用對稱密鑰和ASAuthorizationAppleIDCredential對象,可以鎖定用戶的驗證令牌,從而保護用戶的身份信息。

除此之外,Sign in with Apple還包含了以下的安全措施:

  • 限制開發者從蘋果獲得用戶信息,並且僅提供基礎信息(例如姓名和電子郵件地址)。
  • 定義了一個嚴格的開發者使用協議,以限制對註冊用戶數據的訪問。
  • 在授權令牌中包含了多個驗證簽名,以確保身份信息不會被篡改或冒充。
  • 通過模糊路徑創造和驗證密鑰,使惡意者在從攻擊中偷走憑據時更加困難。

五、結論

隨着數字時代的步伐加快,數據隱私和安全面臨著越來越多的風險挑戰。如何保護用戶的身份和隱私成為了當今的重要問題之一。在這種情況下,Apple提供了一個穩定、安全且私密的登錄方法,即Sign in with Apple。通過將該技術集成到應用程序中,您可以提供一個方便、快捷和高效的登錄方式,從而獲得用戶的信任與認可。

原創文章,作者:GGRXS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/360875.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GGRXS的頭像GGRXS
上一篇 2025-02-24 00:33
下一篇 2025-02-24 00:33

相關推薦

  • in和for的用法區別

    對於Python編程中的in和for關鍵詞,我們在實際編碼中很容易混淆。本文將從多個方面詳細闡述它們的用法區別,幫助讀者正確使用in和for。 一、in關鍵詞 in是用來判斷一個元…

    編程 2025-04-28
  • 如何逆向獲取sign參數

    sign參數是一種大多數API接口都會使用的參數,其作用是用於驗證請求的合法性。因此,在一些需要模擬接口請求的場景中,我們需要逆向獲取sign參數。下面將從多個方面進行詳細的闡述。…

    編程 2025-04-27
  • SQL Server Not In概述

    在今天的軟件開發領域中,數據庫查詢不可或缺。而SQL Server的”Not In”操作符就是這個領域中非常常用的操作符之一。雖然”Not In…

    編程 2025-04-25
  • Oracle Start With詳解

    一、Start With概述 Start With是Oracle中連接查詢的一個重要語句,它允許我們在一個遞歸查詢中藉助樹結構進行查詢,並且支持多種關聯查詢方式。通過Start W…

    編程 2025-04-25
  • 詳解MATLAB的sign函數

    作為一種經典的整數函數,MATLAB的sign函數經常被用來確定給定數值的正負號。但是,這個簡單的函數在實際應用中還有很多不為人知的用途。本文將詳細介紹MATLAB的sign函數,…

    編程 2025-04-25
  • 深入理解 Python 中的 with as 語句

    Python 的 with as 語句是一個高級使用場合,它能夠明顯地減少代碼中的重複邏輯,提高代碼質量。本文從多個方面對 with as 語句做詳細的闡述。 一、簡介 with …

    編程 2025-04-23
  • 深入了解With SQL

    With SQL,即通用表表達式(Common Table Expressions),是一種用於定義帶有命名查詢的臨時表格的語法格式。With SQL 結構類似於子查詢,但比起子查…

    編程 2025-04-23
  • Python with Open As

    一、何為Python with Open As Python通過”with open as”實現文件的讀寫操作。通常處理文件流操作時,需要使用try&#82…

    編程 2025-04-20
  • Oracle WITH AS用法優點缺點分析

    一、簡介 Oracle WITH AS是一種SQL語法,用於在一個查詢中定義一個臨時的命名結果集,並在查詢中引用該結果集,它是Oracle中實現遞歸查詢的一種方式。當一次查詢需要多…

    編程 2025-02-25
  • 深入探究ES6 for…in

    一、基礎用法 ES6中的for…in循環與ES5中的for…in有所區別。在ES5中,使用for…in循環來迭代對象的屬性,在迭代時,可以遍歷對…

    編程 2025-02-24

發表回復

登錄後才能評論