microsoftgraph / microsoftgraph/msgraph-sdk-php

How to Retrieve MS Graph User email and pass extra parameters to callback redirect URL? (Auth, Login with Microsoft button)

Open
#1,558 0 comments 0 reactions 1 assignee View on GitHub

@timayabi2020 is already working on this.

Since Aug 8, 2024.

type:question
Dominant language
PHP
Stars
669
Forks
150
Avg merge
15h 21m
Merged PRs (30d)
3

Description

Sorry, I am very dumb, I've searched around, and couldn't find how to do the most basic stuff with the latest v2 of SDK.

I need to add the "Login with Microsoft" button to my app, like I have with Google.

I have created an App and have all the tenant IDs and redirect URL.

Two methods have to be implemented:

  1. Generate a redirect URL from my app to Microsoft login/consent page
  2. Callback function where I retrieve the user's email and handle authentication in the app, not related to Microsoft, I don't need to store any access keys, etc.

I need something like:

public function redirectToMicrosoft(Request $request) {
   $tenant = ...
   $clientId = ...
   $clientSecret = ...
   $callbackUrl = ...
   $scopes = ['User.Read']

   $extra_params = ['stuff' => 'something']

   // What do I need here to generate the URL from my tenant and other secrets?
   $url = $microsoft->getAuthURL($tenant etc, $extra_params)

   redirect($url)
public function handleMicrosoftCallback(Request $request) {

   // What do I need here to retrieve the user's name/email and extra_params?
   $ms_user = $microsoft->user();
   $extra_params = $microsoft->getState();
   $name = $ms_user->getName();
   $email = $ms_user->getEmail();

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.