mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-26 05:39:26 -05:00
Add notes on integrating with Facebook for SSO login. (#9244)
This commit is contained in:
parent
00e97a7774
commit
34efb4c604
1
changelog.d/9244.doc
Normal file
1
changelog.d/9244.doc
Normal file
@ -0,0 +1 @@
|
|||||||
|
Add notes on integrating with Facebook for SSO login.
|
@ -307,3 +307,46 @@ oidc_providers:
|
|||||||
localpart_template: '{{ user.nickname }}'
|
localpart_template: '{{ user.nickname }}'
|
||||||
display_name_template: '{{ user.name }}'
|
display_name_template: '{{ user.name }}'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Facebook
|
||||||
|
|
||||||
|
Like Github, Facebook provide a custom OAuth2 API rather than an OIDC-compliant
|
||||||
|
one so requires a little more configuration.
|
||||||
|
|
||||||
|
0. You will need a Facebook developer account. You can register for one
|
||||||
|
[here](https://developers.facebook.com/async/registration/).
|
||||||
|
1. On the [apps](https://developers.facebook.com/apps/) page of the developer
|
||||||
|
console, "Create App", and choose "Build Connected Experiences".
|
||||||
|
2. Once the app is created, add "Facebook Login" and choose "Web". You don't
|
||||||
|
need to go through the whole form here.
|
||||||
|
3. In the left-hand menu, open "Products"/"Facebook Login"/"Settings".
|
||||||
|
* Add `[synapse public baseurl]/_synapse/oidc/callback` as an OAuth Redirect
|
||||||
|
URL.
|
||||||
|
4. In the left-hand menu, open "Settings/Basic". Here you can copy the "App ID"
|
||||||
|
and "App Secret" for use below.
|
||||||
|
|
||||||
|
Synapse config:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- idp_id: facebook
|
||||||
|
idp_name: Facebook
|
||||||
|
idp_brand: "org.matrix.facebook" # optional: styling hint for clients
|
||||||
|
discover: false
|
||||||
|
issuer: "https://facebook.com"
|
||||||
|
client_id: "your-client-id" # TO BE FILLED
|
||||||
|
client_secret: "your-client-secret" # TO BE FILLED
|
||||||
|
scopes: ["openid", "email"]
|
||||||
|
authorization_endpoint: https://facebook.com/dialog/oauth
|
||||||
|
token_endpoint: https://graph.facebook.com/v9.0/oauth/access_token
|
||||||
|
user_profile_method: "userinfo_endpoint"
|
||||||
|
userinfo_endpoint: "https://graph.facebook.com/v9.0/me?fields=id,name,email,picture"
|
||||||
|
user_mapping_provider:
|
||||||
|
config:
|
||||||
|
subject_claim: "id"
|
||||||
|
display_name_template: "{{ user.name }}"
|
||||||
|
```
|
||||||
|
|
||||||
|
Relevant documents:
|
||||||
|
* https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow
|
||||||
|
* Using Facebook's Graph API: https://developers.facebook.com/docs/graph-api/using-graph-api/
|
||||||
|
* Reference to the User endpoint: https://developers.facebook.com/docs/graph-api/reference/user
|
||||||
|
Loading…
Reference in New Issue
Block a user