What are the different methods for user authentication in PHP, especially when the user does not want to store passwords?

When a user does not want to store passwords, one method for user authentication in PHP is to use OAuth or OpenID for third-party authentication. This allows users to log in using their existing credentials from platforms like Google, Facebook, or GitHub without storing their passwords. Another method is to implement token-based authentication using JSON Web Tokens (JWT) or similar technologies, where a token is generated upon successful login and used for subsequent authentication.

// Example code for implementing OAuth authentication in PHP using Google Sign-In

// Include Google Client Library
require_once 'vendor/autoload.php';

// Initialize Google Client
$client = new Google_Client();
$client->setClientId('YOUR_CLIENT_ID');
$client->setClientSecret('YOUR_CLIENT_SECRET');
$client->setRedirectUri('YOUR_REDIRECT_URI');

// Set scopes
$client->addScope('email');
$client->addScope('profile');

// Create authentication URL
$authUrl = $client->createAuthUrl();

// Redirect user to Google Sign-In page
header('Location: ' . filter_var($authUrl, FILTER_SANITIZE_URL));