Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

auth.js 2.0 KiB

il y a 2 ans
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. module.exports = {
  2. provider: async function(options, name) {
  3. const provider = await this.setAuthProvider(name, options);
  4. return { identity: provider.identity };
  5. },
  6. identify: async function(options) {
  7. const provider = await this.getAuthProvider(this.parseRequired(options.provider, 'string', 'auth.validate: provider is required.'));
  8. return provider.identity;
  9. },
  10. validate: async function(options) {
  11. const provider = await this.getAuthProvider(this.parseRequired(options.provider, 'string', 'auth.validate: provider is required.'));
  12. const { action, username, password, remember } = this.req.body;
  13. if (action == 'login') {
  14. return provider.login(username, password, remember);
  15. }
  16. if (action == 'logout') {
  17. return provider.logout();
  18. }
  19. if (!provider.identity) {
  20. return provider.unauthorized();
  21. }
  22. },
  23. login: async function(options) {
  24. const provider = await this.getAuthProvider(this.parseRequired(options.provider, 'string', 'auth.login: provider is required.'));
  25. const username = this.parseOptional(options.username, 'string', this.parse('{{$_POST.username}}'));
  26. const password = this.parseOptional(options.password, 'string', this.parse('{{$_POST.password}}'));
  27. const remember = this.parseOptional(options.remember, '*', this.parse('{{$_POST.remember}}'));
  28. return provider.login(username, password, remember);
  29. },
  30. logout: async function(options) {
  31. const provider = await this.getAuthProvider(this.parseRequired(options.provider, 'string', 'auth.logout: provider is required.'));
  32. return provider.logout();
  33. },
  34. restrict: async function(options) {
  35. const provider = await this.getAuthProvider(this.parseRequired(options.provider, 'string', 'auth.restrict: provider is required.'));
  36. return provider.restrict(this.parse(options));
  37. },
  38. };