- OAuth 2.0 Cookbook
- Adolfo Eloy Nascimento
- 257字
- 2021-07-08 09:35:03
How it works...
This chapter presented you with how to register your application and how to connect with Facebook through the use of the Authorization Code grant type. Because it's a server side flow, it is supposed to be more secure than using the client-side approach (that is, to use the Implicit grant type). But instead of writing the code to handle all the conversations between social-authcode and Facebook (the OAuth 2.0 dance) we are using Spring Social, which provides the ConnectController class which has the capability of starting the authorization flow as well as receiving all callbacks that must be mapped when registering the application.
To better understand how this application works, run the class SocialAuthcodeApplication as Java code and go to http://localhost:8080/ to see the page that will present you with the possibility of connecting to Facebook. Click on Connect to Facebook and you will be redirected to the Facebook authentication page (as per OAuth 2.0's specifications).
After authenticating the user, Facebook presents the user consent page presenting the scope the client application is asking for. Click on continue to grant the requested permission.
After granting permission for public_profile and friend_list scopes, the user must be redirected back to localhost:8080/connect with the authorization code embedded (which will be extracted and validated by ConnectController automatically).
Note that ConnectController will render the facebookConnected view by presenting the following page:

Click on the link here so the application can retrieve the friends which have also authorized social-authcode. You are supposed to see the following page with different content:

- Python機器學習:數(shù)據(jù)分析與評分卡建模(微課版)
- Blender 3D Incredible Machines
- 碼上行動:用ChatGPT學會Python編程
- C/C++數(shù)據(jù)結(jié)構(gòu)與算法速學速用大辭典
- ASP.NET程序開發(fā)范例寶典
- Orleans:構(gòu)建高性能分布式Actor服務
- QGIS 2 Cookbook
- OpenCV 3 Blueprints
- Mastering Docker
- IBM Cognos TM1 Developer's Certification guide
- Python函數(shù)式編程(第2版)
- 深入解析Java編譯器:源碼剖析與實例詳解
- Implementing Microsoft Dynamics NAV(Third Edition)
- Elasticsearch搜索引擎構(gòu)建入門與實戰(zhàn)
- Processing開發(fā)實戰(zhàn)