小编Flo*_*sst的帖子

Gmail通过Laravel发送邮件时会锁定帐户

当我尝试通过运行Laravel 4的网站发送电子邮件时,我遇到了以下异常:

预期的响应代码250,但代码为"535",消息"535-5.7.8用户名和密码不被接受.了解更多信息,请访问535 5.7.8 http://support.google.com/mail/bin/answer.py? answer = 14257 wd7sm12843789wjc.36 - gsmtp"

这是我的邮件配置:

return array(
  'driver' => 'smtp',
  'host' => 'smtp.gmail.com',
  'port' => 465,
  'from' => array('address' => 'mymail@gmail.com', 'name' => 'myname'),
  'encryption' => 'ssl',
  'username' => 'mymail@gmail.com',
  'password' => 'lol',
  'sendmail' => '/usr/sbin/sendmail -bs',
  'pretend' => false,
);
Run Code Online (Sandbox Code Playgroud)

我第一次收到此消息时,我不得不告诉谷歌他可以信任这个IP.但是我的网站上仍然存在这个问题,谷歌不再警告我了.

有没有办法告诉谷歌"停止阻止这个IP,这是我"?

gmail smtp swiftmailer laravel-4

8
推荐指数
2
解决办法
2万
查看次数

Chrome iPad 的视口高度错误

我在 iPad (iPadOS 15.0) 上的 Chrome 浏览器 (v 95.0.4638.50) 上出现奇怪的行为。

我有第一个网站(我们称之为“A”)和第二个网站(称为“B”)。A 有一个指向 B 的链接,该链接将在新选项卡中打开。

问题是,当 B 在新选项卡中打开时,视口看起来比 iPad 的屏幕大,因为我的页脚(即position: fixedbottom: 0)位于可见部分下方,我必须滚动才能看到它。

关于此的有趣事实:

  • 如果我返回第一个选项卡 (A) 并返回第二个选项卡 (B),一切都会恢复正常
  • 我用 Safari、Firefox 甚至 Edge 进行了测试,该错误仅出现在 Chrome 中

这是我的页面在首次加载后的显示方式:

图1

然后,如果我滚动一下,我就会到达页面底部,最后看到页脚:

图2

当我切换选项卡并返回时,一切都恢复正常:

图3

您知道有什么方法可以告诉 Chrome 正确调整页面大小吗?

google-chrome viewport ipad

8
推荐指数
1
解决办法
1290
查看次数

拦截器中的无限循环

我已经建立了一个使用API​​的AngularJS网站.此API提供的功能很少,如身份验证(Oauth).

当API返回401错误时,表示access_token已过期,需要使用refresh_token.

我在AngularJS中创建了一个拦截器.其目标是检查API返回的结果是否为401错误,如果是这种情况,则必须刷新令牌,然后处理先前被拒绝的请求.

问题是拦截器创建了一个无限循环.在初始请求的第二次失败之后,它应该停止但它不会.

angular.module('myApp')
.factory('authInterceptor', function ($rootScope, $q, $window, $injector) {

  return {

    // If the API returns an error
    'responseError' : function(rejection) {

      // If it's a 401
      if (rejection.status == 401) {

        var deferred = $q.defer();

        $injector.get('$http').post('http://my-api.local/api/oauth/token', {
          grant_type    : 'refresh_token',
          client_id     : 'id',
          client_secret : 'secret',
          refresh_token : $window.sessionStorage.refresh_token
        }, {
          headers : {
            'Content-Type'  : 'application/x-www-form-urlencoded'
          },
          transformRequest  : function(obj) {
            var str = [];
            for(var p in obj)
            str.push(encodeURIComponent(p) + …
Run Code Online (Sandbox Code Playgroud)

angularjs angular-http-interceptors

6
推荐指数
1
解决办法
2201
查看次数

NestJS 和 PassportJS 没有刷新令牌

我通过两种不同的策略在我的 NestJS 应用程序中实现了 Google 和 Dropbox 身份验证。

问题是我从来没有得到refresh_token 和access_token。我已经尝试从我的 Google/Dropbox 帐户中已授予的应用程序中删除该应用程序,但没有成功。

import { Injectable } from '@nestjs/common';
import { PassportStrategy } from '@nestjs/passport';
import { Strategy } from 'passport-google-oauth2';
import { AuthService } from './auth.service';
import { OauthUser } from './oauth-user.entity';
import { UserService } from '../user/user.service';
import { ConfigService } from '../config/config.service';
import { CloudProvider } from '../shared/enums/cloud-service.enum';

@Injectable()
export class GoogleStrategy extends PassportStrategy(Strategy, 'google') {

  constructor(private readonly authService: AuthService,
              private readonly userService: UserService,
              private readonly configService: ConfigService) { …
Run Code Online (Sandbox Code Playgroud)

oauth dropbox-api google-oauth passport.js nestjs

6
推荐指数
1
解决办法
2576
查看次数