Skip to content
Snippets Groups Projects
Commit 80370713 authored by josborg's avatar josborg
Browse files

Autinticacion y politicas de privacidad

parent 839a2c33
Branches
No related tags found
No related merge requests found
from flask import Flask, request, render_template, redirect, session
from oauth import Oauth
app = Flask(__name__)
@app.route("/",methods = ["get"])
def index():
return redirect(Oauth.discord_login_url)
@app.route("/login", methods = ["get"])
def login():
code = request.args.get("code")
access_token = Oauth.get_access_token(code)
user_json = Oauth.get_user_json(access_token)
username = user_json.get("username")
user_hash = user_json.get("discriminator")
return username + "#" + user_hash
if(__name__ == "__main__"):
app.run(debug=True)
\ No newline at end of file
<div class="container">
<div class="row">
<h1>Opciones de adminstrador</h1>
<div class="col">
</div>
<div class="col">
</div>
</div>
<div class="row">
<div class="col">
</div>
<div class="col">
</div>
</div>
</div>
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AdminComponent } from './admin.component';
describe('AdminComponent', () => {
let component: AdminComponent;
let fixture: ComponentFixture<AdminComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ AdminComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(AdminComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-admin',
templateUrl: './admin.component.html',
styleUrls: ['./admin.component.css']
})
export class AdminComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}
......@@ -5,6 +5,7 @@ import { PreguntasComponent } from './preguntas/preguntas.component';
import { EncuestasEditarComponent } from './encuestas-editar/encuestas-editar.component';
import { EncuestasListarComponent } from './encuestas-listar/encuestas-listar.component';
import { AuthComponent } from './auth/auth.component';
import { AdminComponent } from './admin/admin.component';
const routes: Routes = [
{ path: 'client/encuestas', component: EncuestasListarComponent },
......@@ -13,6 +14,7 @@ const routes: Routes = [
{ path: 'client/encuestas/:id/estadisticas', component: EstadisticasComponent },
{ path: 'client/auth', component: AuthComponent },
{ path: 'client/auth/:code', component: AuthComponent },
{ path: 'client/admin', component: AdminComponent },
{ path: '**', redirectTo: 'client/encuestas', pathMatch: 'full' }
];
......
......@@ -22,6 +22,7 @@ import { LoggedGuard } from './logged-guard.guard';
import { NotLoggedGuard } from './not-logged.guard';
import { JwtInterceptor } from './jwt.interceptor';
import { AdminComponent } from './admin/admin.component';
@NgModule({
......@@ -31,7 +32,8 @@ import { JwtInterceptor } from './jwt.interceptor';
EstadisticasComponent,
EncuestasEditarComponent,
EncuestasListarComponent,
AuthComponent
AuthComponent,
AdminComponent
],
imports: [
BrowserModule,
......
<button (click)="getUser()">getUser</button>
<!--<button (click)="getUser()">getUser</button>
<button (click)="getGuilds()">getGuilds</button>
<button (click)="addBot()">addBot</button>
<h1>{{this.user.username}}#{{this.user.discriminator}}</h1>
<h1>{{this.user.id}}</h1>
<a ro></a>
<button (click)="navPoll()">Ir a encusta</button>
<button (click)="getIdByCode()">getIdByCode</button>
<button (click)="getIdByCode()">getIdByCode</button>-->
<div class="container">
<div class="row mt-5">
<h1>Politicas de pivacidad</h1>
</div>
<div class="row">
<p>La Universidad de Valladolid, provisto con NIF/CIF G-47382056, dirección Plaza de Santa Cruz 5- Bajo, no puede asumir ninguna responsabilidad derivada del uso incorrecto, inapropiado o ilícito de la información aparecida en la página de Internet de virtual.infor.uva.es:65102. Con los límites establecidos en la ley, La Universidad de Valladolid no asume ninguna responsabilidad derivada de la falta de veracidad, integridad, actualización y precisión de los datos o informaciones que se contienen en sus páginas de Internet. Los contenidos e información no vinculan a La Universidad de Valladolid ni constituyen opiniones, consejos o asesoramiento legal de ningún tipo pues se trata meramente de un servicio ofrecido con carácter informativo y divulgativo. La página de Internet de La Universidad de Valladolid puede contener enlaces (links) a otras páginas de terceras partes que La Universidad de Valladolid no puede controlar. Por lo tanto, La Universidad de Valladolid no puede asumir responsabilidades por el contenido que pueda aparecer en páginas de terceros. Los textos, imágenes, sonidos, animaciones, software y el resto de los contenidos incluidos en este website son propiedad exclusiva de La Universidad de Valladolid o sus licenciantes. Cualquier acto de transmisión, distribución, cesión, reproducción, almacenamiento o comunicación pública total o parcial, debe contar con el consentimiento expreso de La Universidad de Valladolid. Asimismo, para acceder a algunos de los servicios que La Universidad de Valladolid ofrece a través del website deberá proporcionar algunos datos de carácter personal. En cumplimiento de lo establecido en el Reglamento (UE) 2016/679 del Parlamento Europeo y del Consejo, de 27 de abril de 2016, relativo a la protección de las personas físicas en lo que respecta al tratamiento de datos personales y a la libre circulación de estos datos le informamos que, mediante la cumplimentación de los presentes formularios, sus datos personales quedarán incorporados y serán tratados en los ficheros de La Universidad de Valladolid con el fin de poderle prestar y ofrecer nuestros servicios así como para informarle de las mejoras del sitio Web. Asimismo, le informamos de la posibilidad de que ejerza los derechos de acceso, rectificación, cancelación y oposición de sus datos de carácter personal, manera gratuita mediante email a usuario@virtual.es o en la dirección Plaza de Santa Cruz 5- Bajo.</p>
</div>
<div class="row">
<div class="col"></div>
<div class="col-auto">
<button class="btn btn-primary mb-2 btn-block" (click)="navPoll()"><h3>Ir a encusta</h3></button>
</div>
<div class="col"></div>
</div>
</div>
\ No newline at end of file
......@@ -10,9 +10,16 @@ import { Solucion } from './app.soluciones-model';
})
export class ClienteApiOrdersService {
private static readonly BASE_URI = 'http://'+location.hostname+':'+location.port+'/api/encuestas/';
constructor(private http: HttpClient) { }
private static BASE_URI = 'http://'+location.hostname+':'+location.port+'/api/encuestas/';
//readonly
constructor(private http: HttpClient) {
if(location.port.length == 0){
ClienteApiOrdersService.BASE_URI = 'http://'+location.hostname+'/api/encuestas/';
}else{
ClienteApiOrdersService.BASE_URI = 'http://'+location.hostname+':'+location.port+'/api/encuestas/';
}
}
/**
* Obtiene una respuesta http con la lista de pedidos
......
......@@ -14,20 +14,26 @@ export class ClienteApiOAutchService {
private static readonly client_id = "920088907733930054";
private static readonly client_secret = "2sKjxaLFQwv5DIxXFVt2pNG7DTGONFWm";
private static readonly scope = "identify";
public static readonly redirect_uri = "http://"+location.hostname+':'+location.port+"/client/auth";
public static redirect_uri = "http://"+location.hostname+':'+location.port+"/client/auth";
public static readonly discord_login_url = "https://discord.com/oauth2/authorize?redirect_uri=" + ClienteApiOAutchService.redirect_uri + "&response_type=token&client_id=" + ClienteApiOAutchService.client_id + "&scope=" + ClienteApiOAutchService.scope;
public static readonly discord_tocken_url = "https://discord.com/api/oauth2/token";
public static readonly discord_api_url = "https://discordapp.com/api/v8";
public static readonly discord_add_bot_url = "https://discord.com/api/oauth2/authorize?client_id="+ClienteApiOAutchService.client_id+"&scope=bot&permissions=8"
public static readonly auth_url = "http://"+location.hostname+':'+location.port+"/api/auth";
public static auth_url = "http://"+location.hostname+':'+location.port+"/api/auth";
postId:any;
constructor(private http: HttpClient) {
if(location.port.length == 0){
ClienteApiOAutchService.auth_url = "http://"+location.hostname+"/api/auth";
ClienteApiOAutchService.redirect_uri = "http://"+location.hostname+"/client/auth";
}else{
ClienteApiOAutchService.auth_url = "http://"+location.hostname+':'+location.port+"/api/auth";
ClienteApiOAutchService.redirect_uri = "http://"+location.hostname+':'+location.port+"/client/auth";
}
}
getJWT(user: User, code: String){
......
# Imports
import discord
from discord.ext import commands
# Credentials
TOKEN = 'OTIwMDg4OTA3NzMzOTMwMDU0.YbfRkg.S2_yeVBcKV-fsCGao2hScq_0aPI'
# Create bot
client = commands.Bot(command_prefix='!')
# Startup Information
@client.event
async def on_ready():
print('Connected to bot: {}'.format(client.user.name))
print('Bot ID: {}'.format(client.user.id))
# Command
@client.command()
async def helloworld(ctx):
await ctx.send('Hello World!')
client.run(TOKEN)
import requests
class Oauth(object):
client_id = "920088907733930054"
client_secret = "2sKjxaLFQwv5DIxXFVt2pNG7DTGONFWm"
scope = "identify%20guilds"
redirect_uri = "http://localhost:5000/login"
discord_login_url = "https://discord.com/api/oauth2/authorize?client_id={}&redirect_uri={}&response_type=code&scope={}".format(client_id,redirect_uri,scope)
discord_tocken_url = "https://discord.com/api/oauth2/token"
discord_api_url = "https://discordapp.com/api"
@staticmethod
def get_access_token(code):
payload={
'client_id':Oauth.client_id,
'client_secret':Oauth.client_secret,
'grant_type':"authorization_code",
'code':code,
'redirect_uri':Oauth.redirect_uri,
'scope':Oauth.scope
}
headers = {
'Content-Type': 'application/x-www-form-urlencoded'
}
access_token = requests.post(url = Oauth.discord_tocken_url, data = payload, headers = headers)
json = access_token.json()
return json.get("access_token")
@staticmethod
def get_user_json(access_token):
url = Oauth.discord_api_url + "/users/@me"
headers = {
"Authorization": "Bearer {}".format(access_token)
}
user_object = requests.get(url = url, headers = headers)
user_json = user_object.json()
return user_json
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment