A react component to implement Microsoft login (via outlook.com, live.com, office365.com). Visit Implement Microsoft login in a react.js app for a detailed write up.
follow the steps mentioned below:
Obtain application Id by registering your app in Microsoft App Dev Center, under the platforms
section, add web
platform and enter the redirect uri, which is the path of an html file residing on your web server. For example http://localhost:9999/authComplete.html
. Content of this html file in mentioned in step 4. Select appropriate scopes from the Delegated Permissions
Section. Keep a note of these.
Install the package via
npm install react-ms-login --save
You can use this component anywhere in your app as shown below:
import React from "react";
import ReactDOM from "react-dom";
import ReactLoginMS from "react-ms-login";
class ButtonContent extends React.Component {
render(){
return (
<span>
MS Login
</span>)
}
}
ReactDOM.render(<ReactLoginMS
clientId="a157e2ad-7d43-4478-9051-541fd1b2023f" // required: 'application id/client id' obtained from https://apps.dev.microsoft.com for your app
redirectUri="http://localhost:9999/authComplete.html" // required: redirectUri registered in https://apps.dev.microsoft.com for your app
scopes={["user.read"]} //optional: defaults to "user.read" full list is present https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference
responseType="token" //optional: valid values are "token" for `Implicite OAuth flow` and "code" for `Authorization Code flow` defaults to "token"
cssClass="some-css-class" // optional: space separated class names which are applied on the html Button element
btnContent={ButtonContent} // optional: can be string or a valid react component which can be rendered inside html Button element
handleLogin={(data) => console.log(data)}// required: callback to receive token/code after successful login
/>, document.getElementById("app"));
Based on the redirectUri
you have configured in the Step 1, create the corresponding html file. For example in this case since we have configured redirectUri as http://localhost:9999/authComplete.html
, that means we need authComplete.html
file at the root of the server. You can of course choose any path in your server, just make sure redirectUri
reflects that path correctly.
Content of authComplete.html is shown below.
<!DOCTYPE html>
<html>
<head>
<script src="dist/authComplete.js"></script>
<script>
ReactLoginMS.authComplete();
</script>
</head>
<body>
</body>
</html>
first script reference points to authComplete.js
, make sure you copy this file from the dist
directory of react-ms-login
package and put it in your server where it's accessible and then change the script src to reflect the path.