10

クライアント コードとサーバー コードを含む "Outlook.com でログイン" フローを実装しようとしています。フローは次のとおりです。

  1. クライアントからユーザーを次の場所にリダイレクトします。

https://login.live.com/oauth20_authorize.srf?client_id=< クライアント ID >&response_type=code&redirect_uri=< ログイン HTML ページ >&scope=openid+offline_access+profile+https:%2f%2foutlook.office.com%2fmail. send+https:%2f%2foutlook.office.com%2fcontacts.read+onedrive.readwrite

  1. コードを自分の html ページに戻し、それを MY Java サーバーに投稿します。

  2. サーバー側では、コードを使用して、 https ://login.live.com/oauth20_token.srf への POST 要求を使用して、アクセス トークンとリフレッシュ トークンを取得します 。

本文の次のパラメーター: client_id、redirect_uri、client_secret、grant_type="authorization_code"、および code=<前のステップのコード>。

access_token と refresh_tokem を受け取りましたが、有効期限は 1 時間です。

  1. まだサーバー上で、私は URL を呼び出します

https://apis.live.net/v5.0/me?access_token= <取得したアクセストークン>

エラー 401 が表示されます。

{
   "error": {
      "code": "request_token_invalid", 
      "message": "The access token isn't valid."
   }
}

この流れは可能ですか?

4

1 に答える 1

0

私はついにこれを機能させることができました。

まず、ユーザー情報を取得するための正しいエンドポイントは
https://graph.microsoft.com/v1.0/meです。

次に、ステップ 1 のスコープはopenid ...ではなくに設定する必要がありますUser.Read

于 2019-04-30T03:26:41.700 に答える