Single Sign-On (SSO)
Last updated
npm install --save jsonwebtoken# Read more here:
https://www.nuget.org/packages/System.IdentityModel.Tokens.Jwt/# Read more here:
https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt/0.7.0composer require firebase/php-jwtsudo gem install jwtpip install PyJWTgo get github.com/dgrijalva/jwt-govar jwt = require('jsonwebtoken');
var SecretKey = 'your_secret_key';
function createToken() {
var userData = {
avatarUrl: 'user_avatar_url',
email: 'johndoe@foo.com' // required
firstName: 'John',
lastName: 'Doe',
company: JSON.stringify({
name: 'Foo Company',
revenue: 1000
}),
workspace_id: '01234567-1c34-1b34-1234-cecb45ab891f' // required
};
return jwt.sign(userData, SecretKey, {algorithm: 'HS256'});
}
var token = createToken();private static string SecretKey = "your_secret_key";
public static string CreateToken()
{
var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(SecretKey));
var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256Signature);
var tokenHandler = new JwtSecurityTokenHandler();
// edited on Aug 3, 2023
// const header = new JwtHeader(credentials);
var header = new JwtHeader(credentials);
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(
new List<Claim>() {
new Claim("email", "johndoe@foo.com"), // required
new Claim("avatarUrl", "user_avatar_url"),
new Claim("firstName", "John"),
new Claim("lastName", "Doe"),
new Claim("company",
// Newtonsoft.Json library usage
JsonConvert.SerializeObject(new {
Name = "Foo Company",
Revenue = 1000
})
),
new Claim("workspace_id", "01234567-1c34-1b34-1234-cecb45ab891f") // required
}
),
// edited on Aug 3, 2023
// SigningCredentials = creds
SigningCredentials = credentials
};
var token = tokenHandler.CreateToken(tokenDescriptor);
return tokenHandler.WriteToken(token);
}import java.util.HashMap;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
public class TokenFactory {
private static final String SecretKey = "your_secret_key";
public static String createToken() throws Exception {
HashMap<String, Object> userData = new HashMap<String, Object>();
// new CompanyDTO(companyName, revenue)
CompanyDTO companyDto = new CompanyDTO("Foo Company", 1000);
Gson gson = new Gson();
String companyJson = gson.toJson(companyDto);
userData.put("email", "johndoe@foo.com");
userData.put("avatarUrl", "user_avatar_url");
userData.put("firstName", "John");
userData.put("lastName", "Doe");
userData.put("company", companyJson);
userData.put("workspace_id", "01234567-1c34-1b34-1234-cecb45ab891f"); // required
return Jwts.builder()
.setClaims(userData)
.signWith(SignatureAlgorithm.HS256, SecretKey.getBytes("UTF-8"))
.compact();
}
}use \Firebase\JWT\JWT;
$SecretKey = 'your_secret_key';
function createToken() {
$companyData = [
'name' => 'Foo Company',
'revenue' => 1000
];
$companyDataJson = json_encode($companyData);
$userData = [
'email' => 'johndoe@foo.com', // required
'avatarUrl' => 'user_avatar_url',
'firstName' => 'John',
'lastName' => 'Doe',
'company' => $companyDataJson,
'workspace_id' => '01234567-1c34-1b34-1234-cecb45ab891f' // required
];
return JWT::encode($userData, $SecretKey, 'HS256');
}require 'jwt'
require 'json'
SecretKey = 'your_secret_key'
def createToken()
companyData = {
name: 'Foo Company',
revenue: 1000
}
userData = {
email: 'johndoe@foo.com' # required
avatarUrl: 'user_avatar_url',
firstName: 'John',
lastName: 'Doe',
company: companyData.to_json,
workspace_id: '01234567-1c34-1b34-1234-cecb45ab891f' # required
}
JWT.encode(userData, SecretKey, 'HS256')
endimport jwt
import json
secret_key = 'your_secret_key'
def create_token():
company_data = {
'name': 'Foo Company',
'revenue': 1000
}
company_json = json.dumps(company_data)
user_data = {
'avatarUrl': 'user_avatar_url',
'email': 'johndoe@foo.com' # required
'firstName': 'John',
'lastName': 'Doe',
'company': company_json
'workspace_id': '01234567-1c34-1b34-1234-cecb45ab891f' # required
}
return jwt.encode(user_data, secret_key, algorithm='HS256')import (
"github.com/dgrijalva/jwt-go"
"encoding/json"
)
const SecretKey = "your_secret_key"
type CompanyData struct {
Name string
Revenue int
}
func createToken() (string, error) {
companyData = CompanyData {
Name: "Foo Company",
Revenue: 1000
}
token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
"avatarUrl": "user_avatar_url",
"email": "johndoe@foo.com" // required
"firstName": "John",
"lastName": "Doe",
"company": json.Marshal(companyData),
"workspace_id": '01234567-1c34-1b34-1234-cecb45ab891f' // required
})
return token.SignedString([]byte(SecretKey))
}