Purpose of tokenSecret : github as oAuth2 provider

20 Views Asked by At

I am currently referring the following project as a baseline to integrate one of my projects with oauth2 (github as a provider). I came across a value named tokenSecret and tokenExpirationMesc variables in application.yml. I am confused how and where to generate this using github and what is the basic usecase behind this.

Could anyone please point out the same for me. Struggling with this for quite some time now.

Github link for the reference project: https://github.com/baezzys/spring-react-google-oauth2/tree/main

Here are the classes in focus for the same:-

Location: spring-social/src/main/java/com/example/springsocial/config/AppProperties.java

package com.example.springsocial.config;

import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.ArrayList;
import java.util.List;

    @ConfigurationProperties(prefix = "app")
    public class AppProperties {
        private final Auth auth = new Auth();
        private final OAuth2 oauth2 = new OAuth2();
    
        public static class Auth {
            private String tokenSecret;
            private long tokenExpirationMsec;
    
            public String getTokenSecret() {
                return tokenSecret;
            }
    
            public void setTokenSecret(String tokenSecret) {
                this.tokenSecret = tokenSecret;
            }
    
            public long getTokenExpirationMsec() {
                return tokenExpirationMsec;
            }
    
            public void setTokenExpirationMsec(long tokenExpirationMsec) {
                this.tokenExpirationMsec = tokenExpirationMsec;
            }
        }
    
        public static final class OAuth2 {
            private List<String> authorizedRedirectUris = new ArrayList<>();
    
            public List<String> getAuthorizedRedirectUris() {
                return authorizedRedirectUris;
            }
    
            public OAuth2 authorizedRedirectUris(List<String> authorizedRedirectUris) {
                this.authorizedRedirectUris = authorizedRedirectUris;
                return this;
            }
        }
    
        public Auth getAuth() {
            return auth;
        }
    
        public OAuth2 getOauth2() {
            return oauth2;
        }
    }

Location: spring-social/src/main/resources/application.yml

spring:
    datasource:
        url: jdbc:mysql://localhost:3306/spring_social?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
        username: root
        password: callicoder

    jpa:
        show-sql: true
        hibernate:
            ddl-auto: update
            naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
        properties:
            hibernate:
                dialect: org.hibernate.dialect.MySQL5InnoDBDialect
    security:
      oauth2:
        client:
          registration:
            google:
              clientId: 5014057553-8gm9um6vnli3cle5rgigcdjpdrid14m9.apps.googleusercontent.com
              clientSecret: tWZKVLxaD_ARWsriiiUFYoIk
              redirectUri: "{baseUrl}/oauth2/callback/{registrationId}"
              scope:
                - email
                - profile
            facebook:
              clientId: 121189305185277
              clientSecret: 42ffe5aa7379e8326387e0fe16f34132
              redirectUri: "{baseUrl}/oauth2/callback/{registrationId}"
              scope:
                - email
                - public_profile
            github:
              clientId: d3e47fc2ddd966fa4352
              clientSecret: 3bc0f6b8332f93076354c2a5bada2f5a05aea60d
              redirectUri: "{baseUrl}/oauth2/callback/{registrationId}"
              scope:
                - user:email
                - read:user
          provider:
            facebook:
              authorizationUri: https://www.facebook.com/v3.0/dialog/oauth
              tokenUri: https://graph.facebook.com/v3.0/oauth/access_token
              userInfoUri: https://graph.facebook.com/v3.0/me?fields=id,first_name,middle_name,last_name,name,email,verified,is_verified,picture.width(250).height(250)
app:
  auth:
    tokenSecret: 04ca023b39512e46d0c2cf4b48d5aac61d34302994c87ed4eff225dcf3b0a218739f3897051a057f9b846a69ea2927a587044164b7bae5e1306219d50b588cb1
    tokenExpirationMsec: 864000000
  cors:
    allowedOrigins: http://localhost:3000,http://localhost:8080
  oauth2:
    # After successfully authenticating with the OAuth2 Provider,
    # we'll be generating an auth token for the user and sending the token to the
    # redirectUri mentioned by the client in the /oauth2/authorize request.
    # We're not using cookies because they won't work well in mobile clients.
    authorizedRedirectUris:
      - http://localhost:3000/oauth2/redirect
      - myandroidapp://oauth2/redirect
      - myiosapp://oauth2/redirect
0

There are 0 best solutions below